Composer.lock in library


Composer.lock in library

我有一个在工作中使用Composer的应用程序,我们提交composer.lock文件,所以我们的dev和prod是相同的。 但是,在创建由作曲家安装的库时,我是否也应该为该库提交 composer.lock 文件? 或者这会给我们的内部存储库或作曲家本身带来问题吗?

它不会导致任何问题,因为 composer.lock 仅在您在库的根目录中实际运行 composer install 时使用。当它作为依赖项安装时,永远不会考虑依赖项的锁定文件。

也就是说,对于库来说,提交锁定文件确实没有意义,所以请随意 .gitignore 它。我们只是说要始终承诺,因为这是99%的人应该做的。如果一些库作者知道得更好,并在他们的库中忽略它,那很好,但无论哪种方式都无关紧要。

值得将composer.lock放在库中,原因与将其放在可部署项目中的原因相同; 以允许您针对开发中使用的完全相同的依赖项开发和测试库。

这对于库的自动测试非常有用,并有助于快速确定库中的错误是由库本身的实际错误还是由依赖项中的错误/更改行为引起的。或者更通俗地说,它有助于避免"为我工作"的问题。

正如 Seldaek 所说,库的composer.lock文件不会传递以供仅需要该库的项目使用。仅当您在库的根目录中运行作曲家时,才使用它。

因此,添加它的好处很小,

并且没有缺点,我建议添加它。