2012-10-26 16 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/" 
    ] 
} 

मैं इसे कैसे इतना स्क्रिप्ट केवल देव वातावरण में चलाए जा रहे हैं कर सकते हैं?

असल में मैं स्क्रिप्ट केवल चलाना चाहते हैं जब मैं फोन:

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 हुक का उपयोग करने के बजाय, देव पथ के लिए कस्टम स्क्रिप्ट सेट करके आप वही प्रभाव प्राप्त कर सकते हैं।

"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 यह केवल-देव स्क्रिप्ट को परिभाषित करने की क्षमता कहते हैं का उपयोग कर सकते हैं। उपयोग

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

निम्न आदेश चलाएं।

composer update --no-scripts 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^