在VSTS中缓存npm install任务

Swa*_*osh 5 build npm azure-devops

我已在VSTS中配置了一个私有代理,并在那里全局安装了NPM。当我尝试通过构建任务安装NPM时,它仍在为每个构建安装NPM软件包,这花费了大量的时间-大约12分钟。

如何缓存NPM安装,以减少构建时间?

Sha*_*zyk 5

我们使用npm-cache, npm-cache 是一个节点模块,它将为每个哈希计算您的 package.json 文件的哈希,它将在您的构建服务器上创建包含 node_modules 内容的 zip 文件夹,现在 npm install 被简化为提取一个zip 在每个构建中(当然只有在您实际上没有更改 package.json 的情况下)。

这个想法是:第一次该工具下载npm包并将它们保存在本地,第二次如果package.json没有改变,他从本地磁盘中取出包并将它们复制到构建代理文件夹,只有当package.json他下载改变时来自互联网的包裹。

  1. 在构建机器上安装 npm-cache:

    npm install npm-cache -g

  2. 在构建定义中添加命令行任务(工具:(C:\Windows\User\AppData\Roaming\npm\npm-cache或者只是npm-cache将工具添加到环境路径变量);参数:install npm;工作文件夹:($(Build.SourcesDirectory)或所在的package.json位置)。


And*_*SFT 0

不幸的是,我们无法缓存 NPM 安装,因为目前没有这样的内置功能。

然而,已经有用户提交建议该功能的声音:通过构建缓存提高托管构建代理性能,并且 VSTS 团队现在似乎正在积极致力于此...

目前,您可以尝试在 Visual Studio Team Services 上加速 NPM INSTALL