修复所有节点模块'版本号到package.json中当前使用的版本号

时间:2015-10-24 20:59:43

标签: node.js package.json

目前,package.json中的所有节点模块都使用*作为版本号,我的应用程序对这些节点模块非常稳定,所以我想在package.json中修改它们的版本号,这样我就可以了可以在其他地方运行npm install以安装具有预期版本的节点模块。

有没有办法快速完成,而不是手动逐个更改?

例如某些控制台命令,npm fixversion module_a module_b ...

1 个答案:

答案 0 :(得分:1)

您正在寻找

npm shrinkwrap

有关详细信息,请参阅the documentation here

它将使用当前版本生成npm-shrinkwrap.json,并且它优先于package.json,因此如果您愿意,可以删除该文件和npm update

更新

这是一个小脚本,它将package.json的{​​{1}}版本写入新文件npm-shrinkwrap.json

package-lockdown.json

以上脚本也会更新var fs = require('fs'); var p = JSON.parse( fs.readFileSync( 'package.json') ); var v = JSON.parse( fs.readFileSync( 'npm-shrinkwrap.json') ); updateDependencies( p.dependencies, v.dependencies ); updateDependencies( p.devDependencies, v.dependencies ); fs.writeFileSync( 'package-lockdown.json', JSON.stringify( p, null, 2 ) ); function updateDependencies( list, v ) { for ( var d in list ) list[d] = v[d].version; } ,因此请务必在运行脚本之前删除该行或运行devDependencies