Azure Pipeline中降级NPM版本解决npm install构建失败问题
Azure流水线降级NPM版本的解决方法
先修正你之前的降级命令
你之前尝试的降级命令缺少install关键字,导致执行失败,正确的全局安装指定版本NPM的命令如下:
- script: npm install -g npm@8.19.4 workingDirectory: $(rootFolder) displayName: 'Downgrade NPM to specified version'
注意:NPM版本号要和你项目使用的Node.js版本兼容,比如Node 14对应NPM 8.x系列,Node 16对应NPM 8.x或9.x,不要选和Node版本不匹配的NPM版本(你之前写的npm@14.21.3是错误的,NPM目前没有14.x版本,这应该是Node.js的版本号)。
执行完这个降级脚本后,再运行你的npm install --legacy-peer-deps命令,就会使用降级后的NPM版本了。
更可靠的方案:用NodeTool任务指定Node.js版本
Azure流水线的代理机器默认的Node.js/NPM版本可能会自动更新,直接通过NodeTool任务指定项目兼容的Node.js版本,就能同步使用对应版本的NPM,从根源避免版本不兼容问题:
- task: NodeTool@0 inputs: versionSpec: '14.x' # 根据项目需求选择Node版本,比如14.x、16.x等 checkLatest: false displayName: 'Install specified Node.js version' - script: npm install --legacy-peer-deps workingDirectory: $(rootFolder) displayName: 'NPM install'
这个方案会先安装你指定的Node.js版本,其自带的NPM版本是经过官方适配的,稳定性更高,能有效解决node-pre-gyp和新版本NPM的兼容性报错。
内容的提问来源于stack exchange,提问作者Jaquarh
相关产品推荐
相关产品推荐

