复制正常运行的React项目文件至新目录执行npm install时遇gyp错误及依赖警告,寻求解决方案
解决npm install的Xcode/CLT错误与Peer依赖警告
首先得搞定导致安装失败的核心gyp错误——这是因为你的macOS缺少Xcode命令行工具,像leveldown这类native模块没法编译,才会抛出这个报错:
步骤1:安装/修复Xcode命令行工具
- 打开终端,直接运行这条命令安装CLT:
跟着弹窗提示完成安装就好。xcode-select --install - 如果提示“命令行工具已安装”但错误还在,试试重置CLT路径:
sudo xcode-select --reset - 要是你已经装了完整的Xcode,记得先打开一次Xcode,同意它的许可协议,再指定正确的开发者路径:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
步骤2:清理缓存重新安装
CLT问题解决后,先清掉之前的安装缓存,避免残留问题干扰:
npm cache clean --force rm -rf node_modules package-lock.json npm install
接下来处理那些peer dependencies警告,这些警告不会直接导致安装失败,但留着可能引发运行时问题,按需处理就行:
1. 安装必要的peer依赖
根据警告信息,逐一补上缺失的依赖:
- 适配extract-text-webpack-plugin@3的webpack版本:
npm install webpack@^3.1.0 --save-dev - ts-loader需要的typescript:
npm install typescript --save-dev - acorn-jsx需要的acorn(选兼容的7.x版本):
npm install acorn@^7.0.0 --save-dev - 如果你项目用到react-native-web相关组件(比如modal-react-native-web),就装对应的依赖:
要是你根本不用这些react-native-web相关包,直接卸载它们更省事,还能避免依赖冲突:npm install react-art@16.x.x react-native-web@0.9.x react@^15.5.4 react-dom@^15.0.0 react-native@^0.x --savenpm uninstall modal-react-native-web react-native-web-modal react-modal-resizable-draggable
2. 修复react/react-dom重复依赖警告
打开你的package.json,把react和react-dom只保留在dependencies或devDependencies的其中一处(普通应用项目放dependencies里就够),删掉重复的条目,再重新跑npm install就行。
要是做完这些还是有问题,可以去看npm给出的详细日志文件(路径:/Users/.../.npm/_logs/2021-04-09T13_48_34_244Z-debug.log),里面会有更具体的错误细节帮你排查。
内容的提问来源于stack exchange,提问作者Jack23
相关产品推荐
相关产品推荐

