dev*_*1ce 2 node.js npm react-native
我一直在努力解决这个错误,一周前我换到新机器时就发生了这个错误。下面是我的机器配置 -> node、npm、yarn 等:
\nnode --version -> v16.18.1\nwhich node -> /opt/homebrew/opt/node@16/bin/node\nwhich npm -> /opt/homebrew/opt/node@16/bin/npm\nwhich yarn -> /opt/homebrew/bin/yarn\nRun Code Online (Sandbox Code Playgroud)\n我也安装了nvm。发生这种情况是否是由于yarn未指向节点安装位置所致?因为目录不同。
\n然后我尝试使用卸载纱线npm uninstall -g yarn并使用重新安装它npm install -g yarn并进入我的项目,删除节点模块,重新安装 Pod 以及所有内容,但此错误仍然存在。
我经历了这些解决方案,但没有一个真正适合我 -> React Native 中的 PhaseScriptExecution [CP-User] 错误
\n以下是我收到的构建错误:
\n/bin/sh -c /Users/username/Library/Developer/Xcode/DerivedData/project-bqzfnxmekpsgkmfaztyrfllaudqg/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/FBReactNativeSpec.build/Script-46EB2E00047A70.sh\nNode found at: /opt/homebrew/Cellar/node/19.0.1/bin/node\n\n/Users/username/Desktop/project/ios/Pods/../../node_modules/react-native/React/FBReactNativeSpec/../../scripts/react_native_pods_utils/script_phases.sh: line 83: /opt/homebrew/Cellar/node/19.0.1/bin/node: No such file or directory\nCommand PhaseScriptExecution failed with a nonzero exit code\n\n** BUILD FAILED **\n\n\nThe following build commands failed:\n PhaseScriptExecution [CP-User]\\ Generate\\ Specs /Users/username/Library/Developer/Xcode/DerivedData/project-bqzfnxmekpsgkmfaztyrfllaudqg/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/FBReactNativeSpec.build/Script-46EB2E00047A70.sh (in target \'FBReactNativeSpec\' from project \'Pods\')\n(1 failure)\nRun Code Online (Sandbox Code Playgroud)\n/.zshrc :-
\nexport JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home\nexport PATH="/opt/homebrew/bin:$PATH"\nexport ANDROID_SDK_ROOT=$HOME/Library/Android/sdk\nexport ANDROID_HOME=$HOME/Library/Android/sdk\nexport PATH=$PATH:$ANDROID_SDK_ROOT/emulator\nexport PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools\nexport PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin\nexport PATH=$PATH:$ANDROID_SDK_ROOT/ndk/21.4.7075529\nexport PATH="$HOME/.rbenv/bin:$PATH"\neval "$(rbenv init -)"\nexport PATH="/opt/homebrew/opt/node@16/bin:$PATH"\n\nexport NVM_DIR="$HOME/.nvm"\n[ -s "$NVM_DIR/nvm.sh" ] && \\. "$NVM_DIR/nvm.sh" # This loads nvm\n[ -s "$NVM_DIR/bash_completion" ] && \\. "$NVM_DIR/bash_completion"\nRun Code Online (Sandbox Code Playgroud)\n正如我所说,当我yarn install在项目文件夹中执行操作时,由于yarn没有指向节点安装目录,它可能会考虑错误的版本并使用错误的版本下载,因此会出现此错误...
有人可以帮我解决这个问题吗?
\n提前致谢!
\n编辑-1
\n这是我的find-node-for-xcode.sh下node_modules/react-native/scripts/
#!/bin/bash\n# Copyright (c) Meta Platforms, Inc. and affiliates.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n\nset -e\n\n#\xc2\xa0WHY WE NEED THIS:\n# This script is used to find a valid instance of `node` installed in the machine.\n# This script is sourced by other scripts to get access to node.\n# Specifically, it is used by the `react-native-xcode.sh` script, invoked by a\n# post-build phase in Xcode, to build the js files required by React Native.\n#\n# DEPRECATION NOTE:\n# React Native should not make assumptions on your current node environment.\n# This file is deprecated and will be removed in a future release in favor of something\n# node-agnostic and configurable by the developers.\n\n# remove global prefix if it\'s already set\n# the running shell process will choose a node binary and a global package directory breaks version managers\nunset PREFIX\n\n# Support Homebrew on M1\nHOMEBREW_M1_BIN=/opt/homebrew/bin\nif [[ -d $HOMEBREW_M1_BIN && ! $PATH =~ $HOMEBREW_M1_BIN ]]; then\n export PATH="$HOMEBREW_M1_BIN:$PATH"\nfi\n\n# Define NVM_DIR and source the nvm.sh setup script\n[ -z "$NVM_DIR" ] && export NVM_DIR="$HOME/.nvm"\n\n# Source nvm with \'--no-use\' and then `nvm use` to respect .nvmrc\n# See: https://github.com/nvm-sh/nvm/issues/2053\nif [[ -s "$HOME/.nvm/nvm.sh" ]]; then\n # shellcheck source=/dev/null\n . "$HOME/.nvm/nvm.sh" --no-use\n nvm use 2> /dev/null || nvm use default\nelif [[ -x "$(command -v brew)" && -s "$(brew --prefix nvm)/nvm.sh" ]]; then\n # shellcheck source=/dev/null\n . "$(brew --prefix nvm)/nvm.sh" --no-use\n nvm use 2> /dev/null || nvm use default\nfi\n\n# Set up the nodenv node version manager if present\nif [[ -x "$HOME/.nodenv/bin/nodenv" ]]; then\n eval "$("$HOME/.nodenv/bin/nodenv" init -)"\nelif [[ -x "$(command -v brew)" && -x "$(brew --prefix nodenv)/bin/nodenv" ]]; then\n eval "$("$(brew --prefix nodenv)/bin/nodenv" init -)"\nfi\n\n# Set up the ndenv of anyenv if preset\nif [[ ! -x node && -d ${HOME}/.anyenv/bin ]]; then\n export PATH=${HOME}/.anyenv/bin:${PATH}\n if [[ "$(anyenv envs | grep -c ndenv )" -eq 1 ]]; then\n eval "$(anyenv init -)"\n fi\nfi\n\n# Set up asdf-vm if present\nif [[ -f "$HOME/.asdf/asdf.sh" ]]; then\n # shellcheck source=/dev/null\n . "$HOME/.asdf/asdf.sh"\nelif [[ -x "$(command -v brew)" && -f "$(brew --prefix asdf)/asdf.sh" ]]; then\n # shellcheck source=/dev/null\n . "$(brew --prefix asdf)/asdf.sh"\nfi\n\n# Set up volta if present\nif [[ -x "$HOME/.volta/bin/node" ]]; then\n export VOLTA_HOME="$HOME/.volta"\n export PATH="$VOLTA_HOME/bin:$PATH"\nfi\n\n# Set up the fnm node version manager if present\nif [[ -x "$HOME/.fnm/fnm" ]]; then\n eval "$("$HOME/.fnm/fnm" env)"\nelif [[ -x "$(command -v brew)" && -x "$(brew --prefix fnm)/bin/fnm" ]]; then\n eval "$("$(brew --prefix fnm)/bin/fnm" env)"\nfi\nRun Code Online (Sandbox Code Playgroud)\n编辑2:
\n仍然卡住了,我尝试了以下步骤,但没有成功:
nvm,现在当我这样做时which node,which npm我which yarn得到以下输出路径:/Users/username/.nvm/versions/node/v16.13.2/bin/node\n/Users/username/.nvm/versions/node/v16.13.2/bin/yarn\n/Users/username/.nvm/versions/node/v16.13.2/bin/npm\nRun Code Online (Sandbox Code Playgroud)\n/bin/sh -c /Users/username/Library/Developer/Xcode/DerivedData/myapp-bqzfnxmekpsgkmfaztyrfllaudqg/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/FBReactNativeSpec.build/Script-46EB2E00047A70.sh\nNode found at: /opt/homebrew/Cellar/node/19.0.1/bin/node\n/Users/username/Desktop/algoguru/algoguru/ios/Pods/../../node_modules/react-native/React/FBReactNativeSpec/../../scripts/react_native_pods_utils/script_phases.sh: line 83: /opt/homebrew/Cellar/node/19.0.1/bin/node: No such file or directory\nCommand PhaseScriptExecution failed with a nonzero exit code\nRun Code Online (Sandbox Code Playgroud)\n我不明白这一点Node found at: /opt/homebrew/Cellar/node/19.0.1/bin/node,我已经删除了每个brew安装的节点,然后也尝试导航到相同的路径,但找不到任何路径,但这里错误的是它说否则......
有人可以帮忙吗?真的卡住了!无论我做什么,我似乎都无法摆脱这个错误。
\n我能够解决这个问题,xcode.env.local我的项目ios文件夹中有一个隐藏文件,其中有以下路径:export NODE_BINARY="/opt/homebrew/Cellar/node/19.0.1/bin/node",因此将其更改为我当前的节点路径(使用which node),它开始工作。
| 归档时间: |
|
| 查看次数: |
2363 次 |
| 最近记录: |