提问者:小点点

package-lock.json应该提交到npm包的存储库吗?


这类似于我提交由npm 5创建的package-lock.json文件吗?或者package-lock.json也应该出版吗?

但是对于npm包。我被告知不建议将此文件提交给回购协议(只建议应用程序提交),但我现在找不到此信息进行确认。

从npm文档中:

关于包锁的一个关键细节。json是不能发布的,如果在toplevel包以外的任何地方找到它,它将被忽略

https://docs.npmjs.com/configuring-npm/package-lock-json.html

这是否意味着我是否提交文件不重要?我这样问是因为github刚刚(再次)在我的repo(npm包)中发现了漏洞,它说漏洞在包锁中。json(一个由dependecy机器人自动修复,另一个由PR修复)。如果锁文件不在npm存储库中,是否意味着npm包也易受攻击。

关于npm包的锁定文件,您有什么建议?好的参考网站与此信息也将很好。


共1个答案

匿名用户

在repo中保持包锁定是很有用的,因为这意味着无论谁下载并安装项目,都将获得与您完全相同的子依赖项。

GitHub对已弃用的依赖关系变得很挑剔,这很有用,所以你不必重新安装它们就能知道。

在某些情况下,当您下载旧的回购协议时,您希望应用程序保持上次更新时的状态。如果包锁不在回购协议中,那么几乎不可能做到这一点。

通常,如果依赖项有重大更新,则必须更改项目中的代码才能跟上。包锁保护您不必为具有许多不建议使用的依赖项的旧项目同时进行大量更改。