Composer a la possibilité de charger plusieurs dépendances uniquement pendant le développement, de sorte que les outils ne seront pas installés en production (sur le serveur live). C'est (en théorie) très pratique pour les scripts qui n'ont de sens qu'en développement, comme les tests, les faux outils de données, le débogueur, etc.
La solution consiste à ajouter un require-dev
bloc supplémentaire avec les outils dont vous avez besoin en dev:
"require-dev": {
"codeception/codeception": "1.6.0.3"
}
puis (théoriquement) charger ces dépendances via
composer install --dev
Problème et question:
Composer a radicalement changé le comportement de install
et update
en 2013, les require-dev
dépendances sont désormais installées par défaut (!), N'hésitez pas à créer un composer.json avec un require-dev
bloc et à effectuer une composer install
reproduction.
Car le moyen le plus accepté de déployer est de pousser le compositeur. lock (qui contient votre configuration actuelle du compositeur), puis effectuez uncomposer install
sur le serveur de production, cela installera également les éléments de développement.
Quelle est la bonne façon de déployer ceci sans installer les dépendances -dev?
Remarque: j'essaie de créer un Q / R canonique ici pour clarifier le déploiement étrange de Composer. N'hésitez pas à modifier cette question.
composer.lock
ne doit jamais être ajouté au repo Git, JAMAIS. La bonne approche consiste à utiliser la mise à jour du compositeur sur la mise en scène, puis à synchroniser le fichier en production (si tout fonctionne, bien sûr). La préparation doit être la copie exacte d'un environnement de production. composer.lock
devrait faire partie de .gitignore
.