2012-10-26 19 views
21

çalıştırmak komut budur benim composer.json dosyasının:Besteci - sadece dev ortamında

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

Nasıl bu kadar komut dosyaları sadece dev ortamında çalıştırılır yapabilir? Dediğim zaman

Temelde ben komut dosyaları sadece çalıştırmak istiyorum:

php composer.phar update --dev 

cevap

29

herhangi bir komut tetiklemeden olmayan geliştirme ortamı güncellemesini yapmak için kullanabilirsiniz the --no-scripts command line switch for the update command:

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

varsayılan Besteci komut tarafından sadece temel pakette yürütülür. Böylece geliştirme için tek bir paketiniz olabilir ve yaşam ortamında onu canlı sistemin bağımlılığı haline getirebilirsiniz.

Bundan başka, komut dosyalarını otomatik olarak ayırt etmenin herhangi bir yolunu görmüyorum.

3

post-update-cmd kancasını kullanmak yerine, dev yol için özel bir komut dosyası ayarlayarak aynı efekti elde edebilirsiniz.

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

Sonra basitçe İşte php composer.phar dev-update

0

çalıştırmak Eğer https://github.com/neronmoon/scriptsdev Sadece-dev komut tanımlama yeteneği ekler bunu kullanabileceğini, küçük bir pakettir. kullanım

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

aşağıdaki komutu çalıştırın.

composer update --no-scripts