xcode使用了错误的node.js版本

All*_*ang 21 javascript xcode node.js nvm react-native

我是React Native的新手.我曾经react-native init XXX创建过一个新项目.当启动xcodeproj时,我收到一条错误消息:

  const setupEnvScript = /^win/.test(process.platform)
  ^^^^^
SyntaxError: Use of const in strict mode.
    at Module._compile (module.js:439:25)
    at Module._extensions..js (module.js:474:10)
    at Object.require.extensions.(anonymous function) [as .js] (/Users/allanhahaha/Documents/Seat/getseat/SeatApp/node_modules/react-native/node_modules/babel-core/lib/api/register/node.js:214:7)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/allanhahaha/Documents/Seat/getseat/SeatApp/node_modules/react-native/cli.js:15:18)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
Run Code Online (Sandbox Code Playgroud)

根据我的研究,这是一个node.js版本问题:我应该使用v.4.0 +.

我正在使用NVM来管理我的node.js版本.在常规终端窗口中,我有这个:

$ node --version
v5.1.0
Run Code Online (Sandbox Code Playgroud)

但是在xcode运行启动shell脚本时,我看到它使用的是另一个版本v0.10.40,并且xcode也不知道nvm命令.

问题是,我应该如何配置我的Mac,以便xcode可以获取我使用nvm设置的相同版本?

谢谢!


更新:我想source~/.bash_profile在由Xcode中执行的shell脚本,但仍然没有解决问题.

Cih*_*bek 12

当您使用错误的Node(以及npm)版本安装react-native-cli时,似乎会出现此问题.

首先关闭xcode,让我们确保没有旧节点进程在运行,我不确定这是否有必要,但确保:

$ ps -e|grep node
$ kill {process number(s) here}
Run Code Online (Sandbox Code Playgroud)

然后将默认的nvm节点版本设置为您要使用的版本,例如:

$ nvm alias default 6.6.0
Run Code Online (Sandbox Code Playgroud)

然后重新启动终端并确保节点版本现在是默认情况下所需的版本:

$ node -v
v6.6.0
Run Code Online (Sandbox Code Playgroud)

现在重新安装react-native-cli并使新节点版本处于活动状态(它会影响npm版本):

$ npm install -g react-native-cli
Run Code Online (Sandbox Code Playgroud)

现在运行$ react-native run-ios应该使用正确的版本运行xcode!(如果没有,请确保重新启动终端/ xcode并重试).

  • 检查默认值修复了我的 Xcode 错误 - `nvm alias default 8` (2认同)

All*_*ang 6

我通过添加. ~\.bash_profile到shell脚本的顶部来解决了这个问题.


小智 6

将您的节点路径添加到Build Phases / Bundle React Native Code和图像设置

设置

  • 而不是硬编码路径,我只是将NODE_BINARY分配给nvm哪个节点 (3认同)

pin*_*ngo 5

我通过. ~/.nvm/nvm.sh在 Build Phases 中添加到 shell 脚本的顶部来解决