Mac执行npm install时Node-gyp构建报错求助
解决Mac上Angular项目npm install时的Node-gyp构建错误(ValueError: invalid mode: 'rU')
错误信息
执行npm install时触发如下错误:
npm ERR! code 1 npm ERR! path /Users/tum/Desktop/nx-pricing-sample/node_modules/@parcel/watcher npm ERR! command failed npm ERR! command sh -c -- node-gyp-build ... npm ERR! ValueError: invalid mode: 'rU' while trying to load binding.gyp npm ERR! gyp ERR! configure error ...
问题原因
Python 3.12已移除文件打开的rU模式,但当前项目依赖的node-gyp@7.1.2仍在使用该模式,两者不兼容导致构建失败。
解决方案
方案1:降级Python到3.11及以下版本
利用pyenv管理Python版本(未安装pyenv可通过Homebrew安装:brew install pyenv):
- 安装Python 3.11版本:
pyenv install 3.11.0 - 在项目目录设置本地Python版本:
pyenv local 3.11.0 - 删除现有依赖文件并重新安装:
rm -rf node_modules package-lock.json npm install
方案2:升级node-gyp到兼容版本
node-gyp@8.4.0及以上版本已修复Python 3.12兼容问题,通过package.json的overrides强制升级:
- 在项目
package.json中添加配置:"overrides": { "node-gyp": "^8.4.0" } - 删除现有依赖文件并重新安装:
rm -rf node_modules package-lock.json npm install
方案3:临时指定npm使用的Python版本
若不想修改全局或项目Python版本,直接指定npm使用兼容的Python路径:
npm config set python /Library/Frameworks/Python.framework/Versions/3.11/bin/python3
执行后重新运行npm install即可。
内容的提问来源于stack exchange,提问作者Tyler
相关产品推荐
相关产品推荐

