使用npm cache add时可以包含依赖项吗?

M J*_*M J 5 node.js npm

目标是仅填充npm缓存.这个目标源于在初始设置后无需访问npm注册表就需要限制构建环境.

有没有办法使npm cache add <name>@<version>包含依赖?

例如:

  1. npm cache add karma@0.10.9 在缓存文件夹中仅创建业力
  2. npm install karma@0.10.9;rm -rf node_modules 在缓存文件夹中创建业力及其所有依赖项,但需要删除本地安装的node_modules

在示例二中,npm install karma@0.10.9 --no-registry按预期执行没有问题的工作.是否可以避免创建然后删除本地node_modules以填充缓存的额外步骤?

M J*_*M J 3

  1. 生成 npm-shrinkwrap.jsonnpm shrinkwrap --dev

  2. 安装并执行cache-shrinkwrap

  3. 从shrinkwrap.json中删除已解析的键

  4. npm install --no-registry将 npm-shrinkwrap.json 添加到项目的源代码管理中,以保证将来执行时仅请求缓存版本。