【问题标题】:Installing only new packages from composer.json仅从 composer.json 安装新包
【发布时间】:2015-06-04 07:44:26
【问题描述】:

我试图让作曲家只更新新添加的包到composer.json,即当我手动将包依赖项添加到composer.json文件时,它应该只为新包更新composer.lock文件;其余软件包应与以前的版本相同。我尝试运行composer update --lock,但我认为它并没有达到我想要达到的效果,并且需要很长时间才能完成。我检查了作曲家文档上的命令,但找不到一个可以实现我的愿望的命令。任何建议或解决方法将不胜感激。

注意:我使用的是 Laravel Forge,因此有 2 分钟的部署限制。

【问题讨论】:

    标签: composer-php laravel-forge


    【解决方案1】:

    为了只用 composer 安装新的包,你应该运行 composer install 因为composer update 将安装您的新软件包,但会更新所有其他已安装的软件包。

    【讨论】:

      【解决方案2】:

      您可以将包的名称指定为update 命令的参数。这将执行部分更新:composer update the-package/you-want-to-update

      【讨论】:

      • 有没有办法让 composer 自动理解 composer.json 中哪个包是新的?
      【解决方案3】:

      我认为您的问题与您(猜测的)当前工作流程有关:要添加新包,您编辑 composer.json 文件,然后运行 ​​composer update - 希望只添加/更新该新文件。

      如果是这样,这里是解决方案:

      composer require new/package 将添加新软件包的最新版本(考虑到当前安装的软件包)。好处:只有一个命令行,不用摆弄 JSON 内容。

      如果你已经知道你想要哪个版本,你也可以运行composer require new/package:^2.1.25@beta(或者你想要的任何版本和稳定性级别——这个例子有点夸张)。如果此版本与现有软件包不兼容,则不会安装任何内容,所有内容都会回滚,并且您会收到一条错误消息。

      【讨论】:

        猜你喜欢
        • 2014-12-08
        • 2014-09-24
        • 2019-09-12
        • 2018-03-16
        • 2021-11-05
        • 2019-04-22
        • 2018-07-09
        • 2019-03-22
        • 1970-01-01
        相关资源
        最近更新 更多