M1 mbp 中的新 RN 项目构建失败。“找不到节点。确保它在 bash PATH 中或设置 NODE_BINARY 环境变量。”

pek*_*uan 4 xcode ios react-native apple-silicon apple-m1

System:
    OS: macOS 11.3
    CPU: (8) arm64 Apple M1
    Memory: 124.86 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 16.0.0 - /opt/homebrew/bin/node
    Yarn: Not Found
    npm: 7.10.0 - /opt/homebrew/bin/npm
    Watchman: Not Found
  Managers:
    CocoaPods: 1.10.1 - /Users/chia/.rbenv/shims/pod
  SDKs:
    iOS SDK:
      Platforms: iOS 14.5, DriverKit 20.4, macOS 11.3, tvOS 14.5, watchOS 7.4
    Android SDK: Not Found
  IDEs:
    Android Studio: Not Found
    Xcode: 12.5/12E262 - /usr/bin/xcodebuild
  Languages:
    Java: Not Found
  npmPackages:
    @react-native-community/cli: Not Found
    react: 17.0.1 => 17.0.1 
    react-native: 0.64.0 => 0.64.0 
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found
Run Code Online (Sandbox Code Playgroud)

新的 RN 项目创建成功,但 Xcode 构建失败。

错误:

错误:找不到节点。确保它在 bash PATH 中或设置 NODE_BINARY 环境变量。

命令 PhaseScriptExecution 失败,退出代码非零

由自制软件安装的节点,英特尔 mbp 没有此错误。

如何解决此错误?

PATH 中的节点

npm -g bin /opt/homebrew/bin

echo $PATH /Users/chia/.pyenv/shims:/Users/chia/.rbenv/shims:/Users/chia/.rbenv/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin

Kum*_*rav 14

@pekanchuan 在/sf/answers/4713987841/的回答对我有用。

sudo ln -s $(which node) /usr/local/bin/node

我想补充一点,如果这个命令说/usr/local/bin/node: File exists你需要知道链接已经存在,可能是不同版本的节点。就我而言,要安装yarnbrew请安装一个单独的nodejs v15文件并将该文件链接到其二进制文件。虽然我以前nvmnodejs v14nodejs v16。这个额外的 Nodejs 是导致上述错误的原因。

只需运行sudo rm -f /usr/local/bin/node删除链接,然后运行命令sudo ln -s $(which node) /usr/local/bin/node即可创建正确的链接。


pek*_*uan 13

sudo ln -s $(which node) /usr/local/bin/node
Run Code Online (Sandbox Code Playgroud)

它解决了。

  • 我的 M1 无法使用 (5认同)
  • 如果我已经有了但它仍然不起作用怎么办? (4认同)

Sté*_*ane 5

在我的 Mac M1 上,文件夹/usr/local/bin丢失,因此出现错误:

ln: /usr/local/bin/node: No such file or directory
Run Code Online (Sandbox Code Playgroud)

这就是我所做的:

cd /usr/local
sudo mkdir bin
sudo ln -s $(which node) /usr/local/bin/node
Run Code Online (Sandbox Code Playgroud)