应该将 package-lock.json 提交到 npm 包的代码仓库中吗?
应该将 package-lock.json 提交到 npm 包的代码仓库中吗?
这与Do I commit the package-lock.json file created by npm 5?或Should package-lock.json also be published?相似,但适用于npm包。有人告诉我不建议将该文件提交到仓库中(只建议用于应用程序),但我现在找不到确认这一信息的来源。
根据npm文档:
关于package-lock.json的一个关键细节是它不能被发布,
如果在除顶级包之外的任何位置找到它,它将被忽略
这是否意味着我是否提交该文件并不重要?我问这个问题是因为GitHub在我的仓库(npm包)中又发现了漏洞,并且它说漏洞在package-lock.json中(其中一个由依赖性机器人自动修复-通过PR)。
这是否意味着如果锁定文件不在npm存储库中,npm包也存在漏洞?
关于npm包的锁定文件有什么建议?如果有关于此信息的良好参考网站也会很好。
npm包是否应该将package-lock.json提交到代码库中?
原因:
- 将package-lock.json提交到代码库中可以确保其他人下载并安装项目时,能够获得与你完全相同的子依赖关系。
- GitHub对已弃用的依赖项变得苛刻,这对于你无需重新安装就能知道这些依赖项是否已弃用很有用。
- 在下载旧的代码库时,如果不包含package-lock.json,很难使应用程序与其上次更新时保持一致。
解决方法:
- 将package-lock.json提交到代码库中,可以避免在旧项目中遇到许多已弃用依赖项时需要一次性进行大量更改的情况。
- 尽量减少npm包的依赖项。
请注意,这些回答主要是关于应用程序和GitHub的一般建议,可能对npm包也有帮助,但具体情况还需根据项目自身决定。