NPM:只安装缺失 - 如何加快npm安装

Tet*_*Dev 7 msbuild tfs npm npm-install azure-devops

我的npm脚本中有很多不确定因素.npm install第一次需要几分钟,没关系.

但是因为我正在与TFS构建服务器集成,所以它只需要安装一次npm.之后,npm install只是浪费时间,因为只需要2-3分钟来确定已安装的软件包.此外,它似乎始终使用-g全局标志重新安装包,即使存在时也是如此.

如何检查包是否存在,如果是,请跳过npm install?

Edd*_*SFT 6

如果使用内部构建代理进行构建,则可以使用npm-cache作为替代方法.

它对于每次作为构建过程的一部分运行[npm | bower | composer | jspm]安装的构建过程很有用.由于依赖关系不会经常更改,这通常意味着构建时间变慢.npm-cache通过在构建计算机上缓存以前安装的依赖项来帮助缓解此问题.npm-cache可以替代运行[npm | bower | composer | jspm] install的任何构建脚本.

这个怎么运作

当您运行npm-cache install [npm | bower | jspm | composer]时,它首先在当前工作目录中查找package.json,bower.json或composer.json,具体取决于请求的依赖项管理器.然后,它计算配置文件的MD5哈希值,并在缓存目录中查找名为.tar.gz的字段(默认情况下为$ HOME/.package_cache).如果该文件不存在,npm-cache使用系统安装的依赖项管理器来安装依赖项.一旦安装了依赖项,npm-cache会将新下载的依赖项归并并将它们存储在缓存目录中.下次npm-cache运行并看到相同的配置文件时,它将在缓存目录中找到tarball并解压缩当前工作目录中的依赖项.

你也可以试试npm-install-missing.

但是,如果您使用的是VSTS托管构建代理,则无法执行此操作,因为每次使用托管构建代理对构建进行排队时,都会为构建分配一个干净的构建代理.这意味着代理上没有安装依赖包.您需要执行完整的npm安装.