【发布时间】:2013-09-19 17:16:27
【问题描述】:
我在这里有一个使用 Composer 的应用程序,我们提交了 composer.lock 文件,因此我们的开发和生产是相同的。但是在创建由 composer 安装的库时,我是否也应该提交该库的 composer.lock 文件?或者这会给我们的内部回购或作曲家本身带来问题?
【问题讨论】:
标签: php composer-php
我在这里有一个使用 Composer 的应用程序,我们提交了 composer.lock 文件,因此我们的开发和生产是相同的。但是在创建由 composer 安装的库时,我是否也应该提交该库的 composer.lock 文件?或者这会给我们的内部回购或作曲家本身带来问题?
【问题讨论】:
标签: php composer-php
它不会引起任何问题,因为 composer.lock 仅在您在库的根目录中实际运行 composer install 时使用。当它作为依赖项安装时,从不考虑依赖项的锁定文件。
也就是说,对于库来说,提交锁定文件确实没有什么意义,所以请随意 .gitignore 它。我们只是说始终承诺,因为这是 99% 的人应该做的。如果一些库作者知道得更好,并在他们的库中忽略它,那很好,但无论哪种方式都无关紧要。
【讨论】:
值得将composer.lock 放入库中,原因与将其放入可部署项目中的原因相同;允许您针对在其开发中使用的完全相同的依赖项开发和测试该库。
这对于您对库的自动化测试很有用,并有助于快速识别库中的错误是由库本身的实际错误还是由其中一个依赖项中的错误/更改行为引起的.或者更通俗地说,它有助于避免“为我工作”的问题。
正如 Seldaek 所说,库的 composer.lock 文件不会被传递给仅需要该库的项目使用。它仅在您在库的根目录中运行 composer 时使用。
因此,添加它有一点好处,而且没有缺点,我建议添加它。
【讨论】: