在OS X上使用ndenv设置React Native

Joh*_*ley 5 xcode node.js ios react-native

我遇到了在Xcode 7.1中设置新的React Native iOS项目的PATH困难.我正在尝试使用ndenv管理节点版本,这意味着~/.ndenv/shims需要在PATH上.为此,我将PATH设置为用户定义的项目设置为$PATH:~/.ndenv/shims.Xcode设置UI显示正确的扩展PATH值.

然而,由此产生的项目react-native init仍然无法建立.自定义生成脚本无法找到react-native:

../node_modules/react-native/packager/react-native-xcode.sh: line 36: react-native: command not found

react-native已正确安装,但构建输出中的环境变量转储清除~/.ndenv/shims不在PATH上.我的PATH设置不会出现在构建环境中.但是,如果我设置了一个随机的用户定义设置(例如FOOBAR=baz),那么会在构建环境正确显示.

这个结果加上在构建环境中进一步检查PATH清楚地表明Xcode在整个线路的某个地方覆盖了PATH.

所以按优先顺序排列:

  • 如何正确附加到PATH以获取Xcode 7中的自定义构建脚本?
  • 或者,在PATH上为构建脚本获取ndenv管理的npm模块的最佳(最少hacky?)方法是什么?

修改react-native-xcode.sh是不可能的,因为它是外部react-native npm模块的一部分.

更新1

作为一个临时的解决方法,我已经通过自制程序获得ndenv和安装节点.这会react-native在(显然是硬编码的)Xcode路径上进行/usr/local/bin,并且可以使构建运行.我不会提交或接受这个作为解决方案,因为它不允许对ndenv执行的节点版本进行可重复控制.

Joh*_*ley 1

当facebook/react-native#5518登陆时,这个问题得到了有效解决。 现在遵循 NODE_BINARY 环境变量,该变量告诉它在构建系统上react-native-xcode.sh的位置。node在应用程序的目标下,请参阅构建阶段 > 捆绑 React Native 代码和图像,并将 shell 脚本代码设置为:

export NODE_BINARY=$HOME/.ndenv/shims/node
../node_modules/react-native/packager/react-native-xcode.sh
Run Code Online (Sandbox Code Playgroud)

如果您node位于其他位置,请更改 NODE_BINARY 的值以适合您的安装。以下是 Xcode 7.1 的屏幕截图,用于帮助导航:

在“捆绑 React Native 代码和图像”下设置 NODE_BINARY