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

vwkv1x7d  于 2023-06-22  发布在  Node.js
关注(0)|答案(1)|浏览(120)

在脚本中,我想验证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

但这似乎很脆弱。
有更好的办法吗?

4nkexdtk

4nkexdtk1#

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

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

2> /dev/null屏蔽npm list的错误,然后greps作为有限的差异列表的稍微更可读的标准输出。
我更喜欢grep标准输出,因为错误输出不报告package-lock.json版本,我发现它是一个有价值的参考,可以一目了然。
编辑:列出错误仍然更安全,因为缺少依赖项符合grep“missing”,而不是“invalid”

npm list 2>&1 | grep -E '^npm ERR! \w+: '

相关问题