如何在ADO构建定义中跳过安装特定npm包
你使用的install --ignore @microsoft/applicationinsights-common命令不生效,npm原生install指令没有直接跳过指定依赖包的参数,在ADO构建定义中可以通过以下几种方式实现跳过指定npm包的需求:
- 方法一:将目标包设为可选依赖后跳过可选依赖安装
先在项目的package.json文件中,把@microsoft/applicationinsights-common从dependencies/devDependencies移动到optionalDependencies字段下,然后在ADO的npm安装任务中,将安装命令修改为npm install --omit optional即可跳过所有可选依赖的安装。 - 方法二:通过override配置将目标包替换为空包
如果不需要修改原有依赖的分类,可直接在package.json中新增override配置,将目标包指向无内容的空占位包:
配置完成后在ADO中直接执行默认的{ "overrides": { "@microsoft/applicationinsights-common": "npm:empty-npm-package@1.0.0" } }npm install命令即可,不会安装原有的目标包。 - 方法三:构建流程临时移除指定依赖
如果不想修改代码仓库中的package.json内容,可以在ADO构建的npm安装任务之前,新增一个脚本执行步骤,临时移除目标依赖项:
脚本执行完成后再运行正常的# PowerShell脚本示例,Linux/Mac环境可换成对应的node脚本或shell命令 $pkgContent = Get-Content package.json | ConvertFrom-Json $pkgContent.dependencies.PSObject.Properties.Remove('@microsoft/applicationinsights-common') $pkgContent | ConvertTo-Json -Depth 10 | Out-File package.json -Encoding utf8npm install命令即可。
你提供的ADO配置参考截图对应的npm任务配置区域,直接替换为上述对应方法的命令即可生效。
内容的提问来源于stack exchange,提问作者superninja
相关产品推荐
相关产品推荐

