使用Ignite创建React Native应用时遇npm postInstall执行错误
解决Ignite CLI创建React Native应用时postInstall脚本中pod install失败的问题
问题场景
执行npx ignite-cli@latest new PizzaApp创建React Native应用时,postInstall脚本执行失败,核心错误为iOS目录的pod install命令执行出错,完整错误日志如下:
No patch files found ./bin/postInstall failed on command: if [ -d "ios" ]; then cd ios && pod install && cd -; fi npm ERR! code 1 npm ERR! path /Volumes/Technology/projects/react-native/HealthTracker npm ERR! command failed npm ERR! command sh -c -- node ./bin/postInstall npm ERR! A complete log of this run can be found in: npm ERR! /Users/myname/.npm/_logs/2022-11-15T19_13_21_699Z-debug-0.log
环境配置:
- OS: macOS Ventura
- Node: v18.12.1
- npm: 8.19.2
- Ruby: 2.7.6p219 (x86_64-darwin22)
已尝试sudo arch -x86_64 gem install ffi和arch -x86_64 pod install,问题未解决。
可行解决方案尝试
1. 更新CocoaPods并手动执行pod install
当前CocoaPods版本可能与macOS Ventura存在兼容性问题,先更新再手动安装:
sudo gem update cocoapods cd ios pod install --repo-update cd ..
2. 清理CocoaPods缓存与本地仓库
缓存损坏或仓库过期可能导致安装失败,执行以下步骤重置:
cd ios # 删除锁定文件和Pods目录 rm -rf Podfile.lock Pods # 清理所有缓存 pod cache clean --all # 更新本地specs仓库 pod repo update # 重新安装依赖 pod install cd ..
3. 在Rosetta 2模式下重新配置Ruby环境
确保终端全程以Rosetta模式运行,再重新安装相关依赖:
- 右键终端图标→「获取信息」→勾选「使用Rosetta打开」,重启终端
- 执行以下命令:
gem uninstall ffi arch -x86_64 gem install ffi sudo arch -x86_64 gem install cocoapods
- 重新运行Ignite创建命令或手动执行postInstall脚本:
node ./bin/postInstall
4. 降级Node版本至LTS版本
Node 18可能与当前Ignite CLI版本存在兼容性冲突,用nvm切换到Node 16 LTS:
# 安装nvm(未安装时执行) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash # 安装Node 16 LTS nvm install 16 # 切换到Node 16环境 nvm use 16 # 重新创建项目 npx ignite-cli@latest new PizzaApp
5. 跳过postInstall脚本手动初始化项目
如果上述方法均无效,先跳过postInstall创建项目,再手动配置iOS依赖:
npx ignite-cli@latest new PizzaApp --skip-post-install cd PizzaApp cd ios && pod install && cd .. npm install
内容的提问来源于stack exchange,提问作者Nagesha S
相关产品推荐
相关产品推荐

