如何验证node_modules是否与package-lock.json同步?



在脚本中,我想验证node_modules/的内容是否与package-lock.json中定义的内容相对应,或者是否需要(昂贵的(npm ci

我想我也许可以运行npm install --dry-run并解析以下行:

added 670 packages, removed 390 packages, updated 421 packages and audited 101551 packages in 16.337s

但这似乎很脆弱。

有没有更好的方法可以做到这一点?

仅显示node_modules内容与package-lock.json的差异(如果有(:

npm list 2> /dev/null | grep 'invalid: "'

2> /dev/nullnpm list的错误静音,然后将稍微可读性稍强的标准输出作为有限的差异列表进行 grep

。我更喜欢 grep 标准输出,因为错误输出不报告package-lock.json版本,我发现它是一个有价值的参考,一目了然。

>Edit:列出错误仍然更安全,因为缺少的依赖项适合 grep"缺失",而不是"无效"
npm list 2>&1 | grep -E '^npm ERR! w+: '

最新更新