reactnativecn / react-native-website

React Native 中文网
https://reactnative.cn
MIT License
219 stars 328 forks source link

cannot execute binary file #852

Open jifangxia opened 4 months ago

jifangxia commented 4 months ago

Mac OS sonoma 14.5

创建项目:npx react-native@latest init AwesomeProject1 输出: sh: /Users/admin/.npm/_npx/dea611a43221eddd/node_modules/.bin/react-native: cannot execute binary file

ry-krystal commented 1 month ago

你在 macOS Sonoma 14.5 上创建 React Native 项目时遇到 cannot execute binary file 的错误,这是由于 npx 下载的 react-native 可执行文件无法正确执行,通常是因为权限问题或者系统架构不匹配导致的。

解决问题的步骤:

  1. 清理 npx 缓存 npx 使用缓存机制来存储下载的包,缓存文件可能损坏,导致无法执行可执行文件。你可以尝试清理 npx 的缓存: npx clear-npx-cache 或者手动删除缓存目录: rm -rf /Users/admin/.npm/_npx 这样可以确保 npx 从头下载依赖,而不是使用损坏的缓存。

  2. 检查 Node.js 版本 确保你安装的 Node.js 版本符合 React Native 的要求。React Native 通常推荐使用 Node.js 14 及以上的版本。 检查当前 Node.js 版本: node -v 如果你的 Node.js 版本太低或者不兼容,建议升级 Node.js。你可以使用 nvm切换 Node.js 版本: nvm install --lts nvm use --lts

  3. 重新安装 react-native-cli 有时,直接使用 npx 下载并运行 react-native-cli 可能会遇到问题。你可以尝试全局安装 react-native-cli,然后创建项目: 先卸载本地或全局的 React Native CLI: npm uninstall -g react-native-cli 然后重新安装: npm install -g react-native-cli 创建项目: react-native init AwesomeProject1

  4. 确认系统架构(Apple Silicon 与 x86_64) 如果你使用的是 Apple Silicon(M1、M2)芯片,可能有一些工具是为 x86 架构构建的,因此需要在 Rosetta 模式下运行。 检查你当前的架构: uname -m 如果输出为 arm64,你使用的是 Apple Silicon。如果某些工具是为 x86_64 构建的,你可以尝试在 Rosetta 2 环境下运行终端。 通过 Rosetta 运行终端: 找到应用程序中的终端应用,右键点击,选择“获取信息(Get Info)”。 选中“使用 Rosetta 打开”,然后重新打开终端。 在 Rosetta 终端中尝试重新运行创建命令: npx react-native@latest init AwesomeProject1

  5. 检查文件权限 如果可执行文件的权限不正确,也可能导致此错误。可以尝试手动更改文件权限: chmod +x /Users/admin/.npm/_npx/dea611a43221eddd/node_modules/.bin/react-native 然后再尝试运行 npx 命令。

  6. 升级 npm 版本 npx 是 npm 的一部分,如果你的 npm 版本太旧,可能会导致执行错误。可以尝试更新 npm: npm install -g npm@latest 然后重新运行 npx 命令。

  7. 尝试 Yarn 如果 npx 的问题依然没有解决,可以尝试使用 yarn 来代替 npx 创建项目: 先全局安装 Yarn: npm install -g yarn 使用 Yarn 初始化项目: yarn create react-native-app AwesomeProject1