我们希望向我们的CI服务器添加一个自动检查,以防止代码被提交,以更新package.json
中的依赖项,但不更新已解决的依赖项package-lock.json
。有没有办法确认package-lock.json实际上解析了package.json中的所有依赖关系?
如果,例如,有人在package.json
手动更新的依赖,但跑了npm install
而不是npm update
可能发生这种情况(npm install
恩惠package-lock.json
,如果存在的话)。或者,即使某人在更新依赖项时运行了正确的npm
命令,但却忘记将结果更改提交到package-lock.json
,也可能发生这种情况。我们试图在代码审查中观察这些事情,但自动检查一定会更好。有没有这样的npm
命令?
下面是一个例子来说明。
以前:
// package.json
{
"lodash": "~3.1.0"
}
// package-lock.json
{
"dependencies": {
"lodash": {
"version": "3.1.3"
}
}
}
有人更新package.json
但忘了提交更改到package-lock.json
。
后:
// package.json
{
"lodash": "~3.2.0"
}
// package-lock.json (not changed)
{
"dependencies": {
"lodash": {
"version": "3.1.3"
}
}
}
现在package-lock.json
不再反映一组有效的package.json
文件相关决议。