作曲家需要(正常)和一个单个CLI命令中的dev



如何在一个命令中使用 composer require vendor/normal_packagecomposer require vendor/dev_package --dev?我想要一个需要2个软件包的CLI命令,一个包含在"正常" require中,一个进入require-dev节。

背景信息:我有一个composer.json文件:

{
    "require": {
        "drupal/core": "^8.6.7"
    },
    "require-dev": {
        "webflo/drupal-core-require-dev": "^8.6.7"
    }
}

这两个软件包始终需要同时更新。通常我只是做一个可以正常工作的composer update drupal/core webflo/drupal-core-require-dev --with-dependencies

,但有时我明确需要需要一个新的最小版本,并且我想在shell脚本中进行一次以一次更新多个项目(无需手动编辑composer.json)。我无法运行两个命令
composer require drupal/core:^8.6.10 composer require webflo/drupal-core-require-dev:^8.6.10
连续,因为它们彼此依赖。

我如何在一个单个命令中需要一个普通和一个开发包?

如果您的composer.json有循环依赖关系,并且该依赖关系在requirerequire-dev上分开,则目前不可能更新并仅使用一个命令设置新的Min版本。但是我找到了通过使用--no-update选项的要求命令来节省很多时间的方法。

以下是我当前正在使用的代码(drupal/core是普通软件包,webflo/drupal...是Dev软件包,版本^8.7.1是我要执行的新最小版本):

# include both packages in the require section, but don't update
# this is much faster than normal require with update
composer require --no-update drupal/core:^8.7.1 webflo/drupal-core-require-dev:^8.7.1
# move the dev package back into the require-dev section
composer require --dev --no-update webflo/drupal-core-require-dev:^8.7.1
# now run the update, this will take some time (you can not use --no-dev here)
composer update drupal/core webflo/drupal-core-require-dev:^8.7.1 more_stuff/*
# optional: remove the dev-packages again (this is quite fast too)
composer install --no-dev

我不会将问题标记为回答,因为这只是节省时间的解决方法,而不是真正的解决方案。

相关内容

  • 没有找到相关文章

最新更新