如何告诉magallanes使用--no-dev执行composer?

时间:2016-12-14 10:41:10

标签: php deployment composer-php

我正在尝试使用Magallanes部署PHP Web应用程序。

这是我的实际任务配置:

tasks:
  pre-deploy:
    - composer/install
  on-deploy:
    - filesystem/link-shared-files:
        linked_folders:
          - web/fileadmin
          - web/uploads
          - web/typo3temp
          - web/typo3conf/l10n
  post-release:
    - general/manually:
      - vendor/bin/typo3cms install:fixfolderstructure
      - vendor/bin/typo3cms install:generatepackagestates --activate-default=true
      - vendor/bin/typo3cms cache:flush true
      - vendor/bin/typo3cms database:updateschema "*.add,*.change"
      - vendor/bin/typo3cms cache:warmup
  post-deploy:

使用时:

pre-deploy:
        - composer/install

将始终使用composer install --dev调用Composer。有没有办法用--no-dev而不是--dev来调用作曲家?

PS:我已经尝试了- composer/install --no-dev,这会产生以下错误:

  

启动预部署任务:
  找不到任务“Composer / installNoDev”。

更新 因为我需要更多参数,所以我使用了general/manually。我的解决方案现在是:

tasks:
  pre-deploy:
    - general/manually:
        - php7.0 /usr/local/bin/composer install --no-dev --no-progress --optimize-autoloader

但另一方面,我的原始问题有所不同。所以克里斯的回答似乎是正确的。

1 个答案:

答案 0 :(得分:1)

我认为这会奏效:

pre-deploy:
  - composer/install: {dev: false}

我在文档中找不到此内容,但the source references a 'dev' parameter似乎控制了--dev / --no-dev

public function run()
{
    $dev = $this->getParameter('dev', true);
    return $this->runCommand($this->getComposerCmd() . ' install' . ($dev ? ' --dev' : ' --no-dev'));
}

文档为a bit more helpful about setting parameters,但我不确定它是否会将false正确读取为布尔值。