npm:在 package.json 中获取固定的依赖项版本,而无需 npm-shrinkwrap.json



我想在我的 package.json 中编写已安装(!= 最新可用)模块的固定依赖项版本。

这些是替代解决方案,不能满足我的要求:

  1. 最新的可用版本写入 package.json。

  2. npm shrinkwrap 将依赖项写入 npm-shrinkwrap.json而不是 package.json

我不想使用收缩包装,因为它只是另一个工具和附加配置文件,用于解决可以解决的问题。或者可以调整收缩包装以将所有版本从 npm-shrinkwrap.json 写入 package.json ?

我写了一个脚本,它以 package.json 语法从收缩包装文件中提取版本:

node
var sw = require('/path/to/npm-shrinkwrap.json');
for (var key in sw.dependencies) { console.log('"' + key + '": "' + sw.dependencies[key].version + '",') }

但它很丑陋,不适用于开发依赖项。

由于依赖项的依赖项也将获得更新,因此策略不是项目符号证明的。最好将 npm 5 与 https://docs.npmjs.com/files/package-locks 收缩包装或具有 https://yarnpkg.com/lang/en/docs/yarn-lock/的纱线一起使用

最新更新