【问题标题】:Composer workflow: How to update composer.lock when I changed a dependenceComposer 工作流程:更改依赖项时如何更新 composer.lock
【发布时间】:2013-06-24 19:20:51
【问题描述】:

该项目是通过composer.phar install --prefer-source 设置的,包含相当多的模块,这些模块保存在 git 中。

我在我的 IDE (PhpStorm) 中管理所有这些模块及其 git 存储库,因此可能会对 vendor/ 文件夹中的某些模块进行一些更改 - 直接提交到源 git 存储库。

我现在如何确保我的同事在执行 composer.phar installcomposer.lock 在 repo 中)时获得我最近的模块版本?

如果我创建一个本地 composer.phar update,看起来 composer.lock 没有更新,因为我已经有了最新版本(因为我只是直接在 vendor 文件夹中提交)

【问题讨论】:

  • 如果你指向一个标签,版本不会改变,作曲家看不到更新它的理由。如果是这种情况,您应该在更改包定义时增加版本号。
  • 我指向“*”。问题是如何生成更新的composer.lock
  • 未更新,因为您没有推送更改。从供应商/目录更改库后,您应该将更改推送到远程。之后,作曲家将检测到新版本并采取相应措施。而且我建议根据需要使用“dev-develop”或“dev-master”而不是“*”,这样您就可以拥有更多的控制权。

标签: php development-environment composer-php


【解决方案1】:
  1. 在您更新的模块存储库中提交更改。
  2. 将更改推送到所有相应的远程存储库。
  3. 用适当的版本标记新的更改。
  4. 运行composer update vendor1/package1 vendor2/package2(如果您不需要明确说明,则直接运行composer update)。
  5. 提交并推送更新的composer.lock 文件。
  6. 您的同事需要提取更新的composer.lock 文件并运行composer install(从锁定文件安装最新的软件包版本)。

如果您在composer.json 中指定了版本限制,例如"vendor/package": "3.5.*",并且您标记了新版本,例如3.6.0,则需要在步骤4. 之前相应地更新您的composer.json 文件。


附:使用--prefer-source 这样的工作流程非常好。请不要在您的composer.json 中使用*dev-master 版本限制。我建议始终使用版本,即使它们在零主要版本范围内 (0.X.X)。

【讨论】:

    猜你喜欢
    • 2015-12-10
    • 2014-04-21
    • 1970-01-01
    • 2017-11-10
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    相关资源
    最近更新 更多