React-Native env:节点:没有这样的文件或目录

问题描述 投票:0回答:8

在 Xcode env 中编译我的 React-Native 项目时,出现以下构建错误:节点:没有这样的文件或目录

不确定是什么原因造成的? 节点 v8.9.4 React-Native v0.50.4 NPM v5.6.0 我正在使用 nvm

xcode react-native
8个回答
92
投票

如果你正在使用 nvm

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

这会将当前的 nvm 链接到您本地的 usr,下次 Xcode 将找到正确的节点路径和版本


4
投票

如果您使用

nvm
sentry
,这里是此错误的解决方案之一:https://docs.sentry.io/clients/react-native/manual-setup/#using-node-with -nvm


3
投票

Xcode 从 nvm 查找节点时遇到一些问题,请在引发错误的脚本中尝试此操作:

# Setup nvm and set node
[ -z "$NVM_DIR" ] && export NVM_DIR="$HOME/.nvm"

if [[ -s "$HOME/.nvm/nvm.sh" ]]; then
. "$HOME/.nvm/nvm.sh"
elif [[ -x "$(command -v brew)" && -s "$(brew --prefix nvm)/nvm.sh" ]]; then
. "$(brew --prefix nvm)/nvm.sh"
fi

[ -z "$NODE_BINARY" ] && export NODE_BINARY="node"

$NODE_BINARY ../node_modules/@sentry/cli/bin/sentry-cli upload-dsym


1
投票

就我而言,这与旧的哨兵配置以及我使用 nvm 的事实有关。

以下https://docs.sentry.io/platforms/react-native/manual-setup/manual-setup/

您应该能够执行

ln -s $(which node) /usr/local/bin/node
并修复它


0
投票

将此添加到失败的脚本顶部(在项目 -> 构建阶段):

. ~/.nvm/nvm.sh

0
投票

我使用的解决方案记录在此处,是在

/usr/local/bin/node
创建一个调用 nvm 的脚本

#!/usr/bin/env sh
# Use the version of node specified in .nvmrc to run the supplied command

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

nvm_rc_version > /dev/null 2> /dev/null
HAS_NVM_RC=$?

if [[ "$HAS_NVM_RC" == "0" ]] ; then
        nvm run $*
else 
        nvm run default $*
fi
exit $?

0
投票

检查是否存在文件名

ios/.xcode.env.local
,该文件名可能优先于通常设置用于构建 React Native 项目的
ios/.xcode.env
环境变量的
NODE_BINARY
文件:

export NODE_BINARY=$(command -v node)

在我的例子中,有一个

ios/.xcode.env.local
使用
NODE_BINARY
下的临时路径设置
/var/folders/dy/
- 这可以从 Xcode 构建输出中看到。

我使用 Xcode 15.0.1 构建 React Native 0.72.9 项目。

React-rncore
CocoaPods pod 目标由于此(现在无效)路径而失败

显示构建输出

Node found at: /var/folders/dy/bbm86qs502g4h1qx3dhrpyk40000gn/T/yarn--1706023232853-0.9009324729880421/node

然后在下一行失败:

<project-path>/ios/Pods/../../node_modules/react-native/ReactCommon/../scripts/react_native_pods_utils/script_phases.sh: line 34: /var/folders/dy/bbm86qs502g4h1qx3dhrpyk40000gn/T/yarn--1706023232853-0.9009324729880421/node: No such file or directory

0
投票

我通读了所有其他答案。

就我而言,一切都指向正确的地方。

这是.xcode.env.local:

export NODE_BINARY=/opt/local/bin/node

env node
command -v node
在终端中正确解析为
/opt/local/bin/node
,这是有效的,但构建仍然失败,并显示
env: node: No such file or directory

所以我认为

env
当 xcode 调用时无法找到节点,因为包含它的目录不是它的
$PATH

所以我在

.xcode.env.local
的末尾添加了以下行并且它起作用了:

export PATH=$PATH:`dirname $NODE_BINARY`
© www.soinside.com 2019 - 2024. All rights reserved.