2012-10-26 3 views
21

에서 스크립트를 실행이 내 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 
         ^^^^^^^^^^^^ 

기본 작곡가 스크립트에 의해 기본 패키지에서만 실행됩니다. 그래서 당신은 개발을위한 하나의 패키지를 가질 수 있고, 생활 환경에서 그것은 라이브 시스템의 의존성이되게합니다.

이외에도 스크립트를 자동으로 구분하는 방법이 없습니다.

9

그것은 기본에 대해 서로 다른 스크립트 설치를 선택하는 것은 불가능하고, --dev 옵션하지만이 방법 isDevMode을 사용할 수 있습니다() 스크립트 \ 이벤트는 개발 환경에서 명령을 실행하려면 \ 작곡가 있다. http://getcomposer.org/apidoc/master/Composer/Script/Event.html

3

post-update-cmd 후크를 사용하는 대신 dev 경로의 사용자 지정 스크립트를 설정하여 동일한 효과를 얻을 수 있습니다.

"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" 
    ] 
} 

그런 다음 단순히 여기 php composer.phar dev-update

0

을 실행하면 https://github.com/neronmoon/scriptsdev 그것은 단지-dev에 스크립트를 정의 할 수있는 기능을 추가하는 수행하는 데 사용할 수있는 것으로, 작은 패키지입니다. 사용

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

다음 명령을 실행합니다.

composer update --no-scripts