我在这里有一个使用Composer的应用程序,我们提交composer.lock文件,所以我们的dev和prod是相同的.但是在创建由composer安装的库时,我是否应该为库提交composer.lock文件?或者这会对我们的内部回购或作曲家本身造成问题吗?
Sel*_*aek 12
它不会导致任何问题,因为composer.lock仅在您实际在库的根目录中运行composer install时使用.当它作为依赖项安装时,从不考虑依赖项的锁定文件.
也就是说,对于库来说,提交锁文件确实没有意义,所以请随意.gitignore它.我们只是说要始终承诺,因为这是99%的人应该做的事情.如果一些图书馆作者更了解并在他们的文库中忽略它,那很好,但这两种方式并不重要.
值得将其composer.lock放入库中的原因与将其放入可部署项目中的原因相同。使您可以针对开发中使用的完全相同的依赖项来开发和测试该库。
这对于自动测试库很有用,有助于快速识别库中的错误是由库本身中的实际错误还是由其依赖项之一中的错误/更改行为引起的。或者更通俗地说,它有助于避免“为我工作”的问题。
正如Seldaek所说,composer.lock库文件不会传递给仅需要该库的项目使用。仅在库的根目录中运行composer时使用。
因此,添加它的好处很小,而且没有任何缺点,我建议添加它。