2012-10-26 5 views
21

のみのdevの環境でスクリプトを実行します。作曲 - これは私のcomposer.jsonファイルである

"require": { 
    "php": ">=5.4", 
    "zendframework/zendframework": "2.*", 
    "doctrine/doctrine-module": "dev-master", 
    "doctrine/doctrine-orm-module": "0.*", 
    "gedmo/doctrine-extensions": "dev-master" 
}, 
"require-dev": { 
    "phpunit/phpunit": "3.7.*" 
}, 
"scripts": { 
    "post-update-cmd": [ 
     "rm -rf vendor/Behat", 
     "git clone git://github.com/Behat/Behat.git", 
     "cp composer.phar Behat/composer.phar", 
     "cd Behat && git submodule update --init", 
     "cd Behat && php composer.phar install", 
     "cd Behat && php composer.phar require guzzle/guzzle:3.0.*", 
     "mv Behat vendor/Behat", 
     "ln -sf ../Behat/bin/behat vendor/bin/" 
    ] 
} 

は、どのように私はそれがそうスクリプトは唯一のdevの環境で実行されていることができますか?

基本的に私は私が呼ぶときのみ、スクリプトが実行したい:

php composer.phar update --dev 

答えて

29

the --no-scripts command line switch for the update commandを使用し、任意のスクリプトをトリガすることなく、非開発環境の更新を行うには:

php composer.phar update --no-scripts 
         ^^^^^^^^^^^^ 

デフォルトの作曲スクリプトでベースパッケージ内でのみ実行されます。だから、あなたは開発のためのパッケージを1つ持ち、生活環境ではそれをライブシステムの依存性にすることができます。

それ以外は、スクリプトを自動的に区別する方法はありません。

9

これは、デフォルトのインストールのために別のスクリプトを選択することはできませんし、--devオプションいますが、唯一の開発環境には、コマンドを実行する作曲\スクリプト\イベント方法isDevMode()を使用することができます。 http://getcomposer.org/apidoc/master/Composer/Script/Event.html

3

post-update-cmdフックを使用する代わりに、devパスウェイのカスタムスクリプトを設定することで同じ効果を得ることができます。そして、単にここでphp composer.phar dev-update

0

を実行

"scripts": { 
    "update-behat": [ 
     "rm -rf vendor/Behat", 
     "git clone git://github.com/Behat/Behat.git", 
     "cp composer.phar Behat/composer.phar", 
     "cd Behat && git submodule update --init", 
     "cd Behat && php composer.phar install", 
     "cd Behat && php composer.phar require guzzle/guzzle:3.0.*", 
     "mv Behat vendor/Behat", 
     "ln -sf ../Behat/bin/behat vendor/bin/" 
    ], 
    "dev-update": [ 
     "@composer update --dev", 
     "@update-behat" 
    ] 
} 

あなたはそれが唯一の-devのスクリプトを定義する機能を追加し https://github.com/neronmoon/scriptsdev ことを行うために使用できること、小型パッケージです。 使い方

... 
"extra": { 
    "scripts-dev": { 
    "post-install-cmd": [ 
     "npm install --dev" 
    ], 
    "post-update-cmd": "php ./someCoolCommand.php" 
    }, 
} 
... 
0

は、次のコマンドを実行します。

composer update --no-scripts 
関連する問題