【发布时间】:2020-01-19 18:20:02
【问题描述】:
有没有办法在不运行npm install 的情况下检查package-lock.json 文件是否与package.json 兼容?兼容意味着package.json指定的版本可以由package-lock.json实现。
当前方法
我目前正在通过运行 npm install 并检查 package-lock.json 是否更改如下:
git clone https://github.com/my/codebase
cd codebase
npm install
if [[ git diff-index --quiet HEAD -- package-lock.json ]]; then
echo 'ERROR: npm install changed package-lock.json'
fi
用例
我想在持续集成中添加一个测试,以确保如果开发人员修改了package.json,他们也会相应地更新package-lock.json。这很重要的原因是我们的持续集成使用npm ci 而不是npm install。 npm ci 只引用了package-lock.json,所以如果开发者不更新锁文件,持续集成的设置将不符合他们的预期。
【问题讨论】:
-
如果 package.json 和 package-lock.json 不同步,
npm ci将失败,因此您的持续集成已经在测试您的用例。您能否提供更多关于您发现的开发人员设置与 CI 设置之间差异的信息? -
是的,我验证了这适用于版本号。但是,我发现在使用 Git 修订版时情况并非如此。复制和详细信息npm.community/t/…
标签: npm dependencies package.json package-lock.json