【问题标题】:xcode using wrong node.js versionxcode 使用错误的 node.js 版本
【发布时间】:2016-03-06 06:17:35
【问题描述】:

我是 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)

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

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

$ node --version
v5.1.0

但是在 xcode 中,当它运行启动 shell 脚本时,我看到它使用了不同的版本,v0.10.40,而 xcode 也不知道nvm 命令..

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

谢谢!


更新:我尝试在xcode执行的shell脚本中source我的~/.bash_profile,但还是没有解决问题。

【问题讨论】:

  • 你看到这个问题了吗? github.com/facebook/react-native/issues/3974
  • 嗨,Allan,你能告诉我们你的 bash_profile 中有什么,至少是关于 nvm 的部分吗?另外你通常使用 iTerm 还是终端?
  • @ColinRamsay 嗨,感谢您的评论,我刚刚尝试使用 . ~\.bash_profile,它成功了...
  • @Almouro 谢谢你的评论,请看上面的回复
  • 您可以将解决方案添加为下面的答案,然后自己接受以将此问题标记为已关闭。

标签: javascript node.js xcode react-native nvm


【解决方案1】:

对我来说,将其添加到 /etc/profile~/.profile 有效:

export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh"  

这是必要的原因是因为 XCode 默认使用 /bin/sh 并且它从我指定的文件中加载配置文件。

注意:更改/etc/profile 需要您使用sudo。不确定这在 MacOS X 10.15 Catalina 上是否可行,因为我相信无论如何他们都将系统目录设为只读。但是如果你能在这里设置它,这将使它适用于任何安装了 nvm 的用户。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      Setting

      【讨论】:

      • 我没有硬编码路径,而是简单地将 NODE_BINARY 分配给 nvm 哪个节点
      【解决方案4】:

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

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

      $ ps -e|grep node
      $ kill {process number(s) here}
      

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

      $ nvm alias default 6.6.0
      

      然后重启你的终端,确保节点版本现在是你默认的那个:

      $ node -v
      v6.6.0
      

      现在重新安装 react-native-cli 并激活新的节点版本(它会影响 npm 版本):

      $ npm install -g react-native-cli
      

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

      【讨论】:

      • 检查默认值修复了我的 Xcode 错误 - nvm alias default 8
      • nvm alias default stable 对我有用,因为我的稳定设置为 10。我不必重新启动 xcode 或其他任何东西,只需运行命令并构建没有问题。
      • 最佳答案在这里 - 给出问题的可能原因以及解决问题的一些合理步骤
      【解决方案5】:

      在搜索此错误时,由于这是 Google 中的最高结果,因此以下是唯一对我有用的内容。

      我必须卸载 node(之前是从 Node 网站上使用 pkg 安装的),卸载 nvm 并使用 Brew 重新安装 node。

      Link 了解更多信息。

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-03-02
          • 1970-01-01
          • 1970-01-01
          • 2017-01-29
          • 1970-01-01
          • 2017-04-22
          相关资源
          最近更新 更多