将 npmpackage-lock.json
置于版本控制之下有什么意义?根据我的经验,控制此文件源会导致比提高效率更多的麻烦和混乱。
每次添加/删除/修改任何节点模块的开发人员需要解决分支之间的冲突时,拥有package-lock.json
源代码控制都会让人头疼。特别是在 package-lock.json 可能长达数万行的复杂/大型应用程序上工作。即使只是吹走 node_modules 并运行一个新的也可以在包锁中产生巨大的变化。npm install
关于包锁还有其他几个 SO 问题:
- 我是否提交由 npm 创建的 package-lock.json 文件
- Npm - package-lock.json 角色
- 为什么 npm install 会重写 package-lock.json?
还有一个关于包锁的大量对话的 GitHub 问题:
这让我认为仍然存在需要消除的广泛不确定性。
根据文档
package-lock.json
为 npm 修改 node_modules 树或 package.json 的任何操作自动生成。
那么,您为什么要将自动生成的文件置于源代码控制之下呢?
上面的 GitHub 问题详细介绍了一些人如何响应与 package-lock.json 的混淆,将他们的npm install
脚本更改为rm -f package-lock.json && npm install
,这也感觉不正确。
似乎package-lock.json
正在努力成为节点模块依赖项的确切版本的真相来源,但这不正是 package.json 所做的吗?解决此文件中的合并冲突的痛苦何时开始得到回报?