Node.js 如何检查npm-shrinkwrap.json和package.json的一致性
有时,我的团队成员忘记在更新package.json之后更新npm-shrinkwrap.json。我从优步知道,但它不能与npm v3一起使用。所以现在它不是解决方案 我是否可以自动检查npm-shrinkwrap.json和package.json的一致性?我想在git hook或/和continuous中实现这一点 您可以测试,它允许安装(即) 这样的钩子(像这样)可以用来检查源文件的一致性,比如Node.js 如何检查npm-shrinkwrap.json和package.json的一致性,node.js,githooks,npm-shrinkwrap,package-lock.json,Node.js,Githooks,Npm Shrinkwrap,Package Lock.json,有时,我的团队成员忘记在更新package.json之后更新npm-shrinkwrap.json。我从优步知道,但它不能与npm v3一起使用。所以现在它不是解决方案 我是否可以自动检查npm-shrinkwrap.json和package.json的一致性?我想在git hook或/和continuous中实现这一点 您可以测试,它允许安装(即) 这样的钩子(像这样)可以用来检查源文件的一致性,比如npm shrinkwrap.json 例如,另见 一组脚本,用于根据需要自动npm收缩包装和
npm shrinkwrap.json
例如,另见
一组脚本,用于根据需要自动npm收缩包装
和npm安装
如果对package.json
进行阶段性更改,则预提交
钩子将运行npm shrinkwrap
以更新npm shrinkwrap.json
由galk在中更新
我在package.json中选择了此更新
...
"scripts": {
"check-shrinkwrap": "if (! git diff --cached --quiet -- package.json); then echo 'Running `npm shrinkwrap` to match new package spec...' >&2; npm shrinkwrap; git add npm-shrinkwrap.json; fi"
},
...
"pre-commit": [
"check-shrinkwrap",
"test"
]
...
自2017年6月24日起更新
现代的答案是将NPM5与
package lock.json一起使用,谢谢!你对CI解决方案有什么想法吗?@galk.in当然有。您可以将其集成到Travis CI环境中,例如()@galk。您可以在另一个CI的上下文中看到您的问题:greekeeper:
...
"scripts": {
"check-shrinkwrap": "if (! git diff --cached --quiet -- package.json); then echo 'Running `npm shrinkwrap` to match new package spec...' >&2; npm shrinkwrap; git add npm-shrinkwrap.json; fi"
},
...
"pre-commit": [
"check-shrinkwrap",
"test"
]
...