今天构建新版本的 rn new app (0.62.x) , 在xcode手动运行的时候提示
Build fails on Xcode. Run custom shell script 'Bundle React Native code and images'
编译报错
具体的错误信息如下:
/usr/lib/node_modules/pkg/node_modules/fs-extra/lib/mkdirs/make-dir.js:86
} catch {
^
SyntaxError: Unexpected token {
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:617:28)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object. (/usr/lib/node_modules/pkg/node_modules/fs-extra/lib/mkdirs/index.js:3:44)
在google了后确定问题是由于node
的版本引起的 这个错误是因为node
的版本是10
以下的
用命令 yarn ios
是没有问题的 编译通过 终端也检查了 node -v
显示为 v13.14.0
我自己的情况是 node
是使用的 nvm
工具来管理的 也设置了默认的 default alias node
为 v13.14.0
但是呢
终端使用命令可以 xcode
就不行
随后根据报错的根源找到
rn定义的脚本
脚本中的 node
按道理来说应该是 v13.14.0
我寻思是不是引用的其他版本的 node
后面想起来了 /usr/local/bin/node
也有 是不是引用的这个 我后来试了一下
/usr/local/bin/node -v
输出 v8.11.0
低于 10
果然是引用的不对
最后用了软连接 替代了这个路径下的 node
ln -s ~/.nvm/versions/node/v13.14.0/bin/node ./node
然后再 xcode
中手动run 没问题~