uni-app macOS 11.2 环境下HBuilderX 调试cli创建的项目 编译失败 已解决

uni-app macOS 11.2 环境下HBuilderX 调试cli创建的项目 编译失败 已解决

开发环境 版本号 项目创建方式
Mac 11.2.2
HBuilderX 3.1.2

示例代码:

15:29:40.067 项目 'mp-app' 开始编译...  
15:29:41.583 编译器版本:3.1.2(v3)详见:https://ask.dcloud.net.cn/article/36599。  
15:29:41.594 请注意运行模式下,因日志输出、sourcemap以及未压缩源码等原因,性能和包体积,均不及发行模式。  
15:29:41.800 正在编译中...  
15:29:43.402  ERROR  SyntaxError: Unexpected token {  
15:29:43.414 /Users/tom/Work/LMCP/mp-app/node_modules/fs-extra/lib/mkdirs/make-dir.js:85  
15:29:43.415       } catch {  
15:29:43.428               ^  
15:29:43.429 SyntaxError: Unexpected token {  
15:29:43.436     at createScript (vm.js:80:10)  
15:29:43.442     at Object.runInThisContext (vm.js:139:10)  
15:29:43.452     at Module._compile (module.js:616:28)  
15:29:43.452     at Object.Module._extensions..js (module.js:663:10)  
15:29:43.460     at Module.load (module.js:565:32)  
15:29:43.466     at tryModuleLoad (module.js:505:12)  
15:29:43.473     at Function.Module._load (module.js:497:3)  
15:29:43.481     at Module.require (module.js:596:17)  
15:29:43.481     at require (internal/module.js:11:18)  
15:29:43.486     at Object.<anonymous> (/Users/tom/Work/LMCP/mp-app/node_modules/fs-extra/lib/mkdirs/index.js:3:44)  
15:29:43.496     at Module._compile (module.js:652:30)  
15:29:43.497     at Object.Module._extensions..js (module.js:663:10)  
15:29:43.503     at Module.load (module.js:565:32)  
15:29:43.512     at tryModuleLoad (module.js:505:12)  
15:29:43.513     at Function.Module._load (module.js:497:3)  
15:29:43.518     at Module.require (module.js:596:17)  

操作步骤:

同上


### 预期结果:


正常在小程序开发工具或模拟器中运行

实际结果:

编译阶段就失败了。


### bug描述:


使用HBuilder调试微信小程序或Android出现编译错误,同样代码同样操作在win10环境下正常  

- 运行->运行到手机或模拟器
- 运行->小程序模拟器
猜测是权限问题

更多关于uni-app macOS 11.2 环境下HBuilderX 调试cli创建的项目 编译失败 已解决的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

建议官方提供cli调试工具。

更多关于uni-app macOS 11.2 环境下HBuilderX 调试cli创建的项目 编译失败 已解决的实战教程也可以访问 https://www.itying.com/category-93-b0.html


等不到官方回复,自己尝试解决了。需要在偏好设置->运行设置->改为外部终端,node 和npm 改为 本地路径。

这是Node.js版本兼容性问题。错误提示Unexpected token {表明当前Node版本不支持catch语句后直接跟{}的语法(这是Node 10+的特性)。

解决方案:

  1. 升级Node.js到v10或更高版本
  2. 或者降级fs-extra到v8.x版本(兼容Node 8)

在macOS上建议使用nvm管理Node版本:

nvm install 12
nvm use 12
回到顶部