解决NPM始终选用旧版node-gyp的问题(Ionic项目场景)
解决Ionic项目npm install时强制使用旧版node-gyp的问题
以下是几个让NPM优先选用新版node-gyp的具体方案:
覆盖项目依赖版本
在项目根目录的package.json中添加overrides字段(npm 8.3及以上版本支持),强制所有子依赖使用你指定的新版node-gyp:{ "overrides": { "node-gyp": "10.1.0" } }保存后重新执行
npm install即可。全局配置npm默认使用新版
先确保全局安装了新版node-gyp:npm install -g node-gyp@10.1.0然后设置npm全局配置指向新版node-gyp的执行文件:
npm config set node_gyp "$(npm prefix -g)/lib/node_modules/node-gyp/bin/node-gyp.js"之后所有项目执行npm相关操作时,都会默认调用这个新版node-gyp。
删除锁定文件重新解析依赖
如果项目里有package-lock.json或npm-shrinkwrap.json,这些文件可能锁定了node-gyp的旧版本。删除它们(建议先备份),再重新执行npm install,npm会重新拉取符合当前Node.js版本的依赖,包括新版node-gyp。临时通过环境变量指定
执行npm install前,先设置环境变量指向新版node-gyp的路径:# Linux/macOS export NODE_GYP="$(npm prefix -g)/lib/node_modules/node-gyp/bin/node-gyp.js" npm install # Windows PowerShell $env:NODE_GYP = "$(npm prefix -g)/lib/node_modules/node-gyp/bin/node-gyp.js" npm install
内容的提问来源于stack exchange,提问作者Rakesh L
相关产品推荐
相关产品推荐

