PHP Composer: No Dev Mode that Sticks

前端 未结 2 1748
暖寄归人
暖寄归人 2021-01-07 18:52

When you install or update a project with composer, you can tell it to skip the development related dependencies (tests, build tools, etc.) with th

相关标签:
2条回答
  • 2021-01-07 19:36

    This was really annoying, so I finally wrote a simple bash script which asks about environment and run correct command:

    #! /bin/bash
    
    read -p "Which environment use to deploy: (P)roduction (T)est (D)ev? (p/t/d): " -n 1 -r
    echo
    
    if [[ $REPLY =~ ^[^PpTtDd]$ ]]; then
        echo "Incorrect environment";
        exit 1;
    fi
    
    # tasks to run before composer install (svn up/git pull)
    
    if [[ $REPLY =~ ^[Pp]$ ]]; then
        composer install --prefer-dist --no-dev --classmap-authoritative
    elif [[ $REPLY =~ ^[Tt]$ ]]; then
        composer install --prefer-dist --classmap-authoritative
    elif [[ $REPLY =~ ^[Dd]$ ]]; then
        composer install
    fi
    
    # additional tasks after composer install (clear cache, migrations, etc.)
    

    Saved it in bin/deploy in project and added execute permissions. So now I'm using bin/deploy instead of composer install:

    I also put other common tasks there (pull changes from VCS, clear cache, run migrations, etc.), so I have even less things to do and remember during deployment :).

    0 讨论(0)
  • 2021-01-07 19:54

    In short: no - not, yet.

    Composer's default installation mode is to install development dependencies.

    As far as i know, there is only the CLI option --no-dev and no config option.

    It's possible to define a config section in the composer.json of a project, see https://getcomposer.org/doc/04-schema.md#config

    But a quick glance at the source code revealed, that there is no configuration directive for this. https://github.com/composer/composer/blob/master/src/Composer/Config.php#L22

    {
        "config": {
            "no-dev": "true"
        }
    }
    

    +1 for this idea. It could be a useful addition to the Config class.

    0 讨论(0)
提交回复
热议问题