【问题标题】:Large project with Composer dependencies is constantly needing json file modification具有 Composer 依赖项的大型项目不断需要修改 json 文件
【发布时间】:2013-02-18 23:05:37
【问题描述】:

我在一个包含大量作曲家包的大型项目中遇到问题/工作流程,我的 json 文件需要经常更新一个包的新版本,否则作曲家将不会更新。其他语言的其他依赖管理器将在没有手动交互的情况下(在大多数情况下)动态处理这种类型的情况。 Composer 是否缺少我的约定或更好的方法?手动在线检查包页面并再次同步所有包非常耗时。

【问题讨论】:

    标签: php dependency-management composer-php


    【解决方案1】:

    如果您需要具有灵活约束的包,例如 1.* 或类似的,那么当您运行 composer update 时,它会将您更新到与此约束匹配的最新版本。您所描述的绝对不是预期的工作流程,所以我认为您在某处有误解。

    【讨论】:

    • 我有几个使用通配符的包。有些版本是 2.2.*@dev。我应该只放 2.2.* 吗?它似乎也影响了事情的发展,所以不确定这是否真的是最终的答案。
    • 2.2.*@dev 可以,它与2.2.* 相同,但也允许 alpha/beta/RC 和 dev 版本。
    • 我想如果你愿意的话,我想也许我正在寻找一些东西来“冻结”供应商区域,这样一旦一切都处于稳定点,就不会出现意外更新。是否有一个命令可以冻结它,而无需在需要时一次只更新一个供应商的手动过程?
    • 每当您运行更新时,新状态都会写入 composer.lock 文件。当您运行安装时,如果存在 composer.lock,它将安装它并忽略您的 composer.json。这本质上是您的“冻结”状态。而且您绝对应该提交此文件,并且仅在部署到生产/CI 时才运行安装。
    • 嗯,当我将我的代码推送到另一个完全依赖于 composer.json 文件来重建供应商依赖项的环境时,我刚刚遇到了这个问题。 “kriswallsmith/assetic”:“1.1.*”是我根据您的建议放入我的 json 文件中的,而不是“kriswallsmith/assetic”:“1.1.*@dev”。它似乎找不到它。从某种意义上说,我是否仅限于开发版本?我真正想要的是作曲家足够聪明,可以抓取最后一个稳定版本,如果不准确,则忽略我的版本号。即使我可以将“稳定”作为版本包传递,那也很棒。
    猜你喜欢
    • 2022-11-09
    • 2021-09-26
    • 2022-10-19
    • 2020-09-03
    • 2017-04-20
    • 2012-11-27
    • 2015-01-24
    • 2011-02-21
    • 1970-01-01
    相关资源
    最近更新 更多