À l'aide de Compositeur pour installer mnp et bower paquets sur la production (c'est à dire pas de devDependencies)
Dans mon compositeur.fichier json j'ai de la suite dans les scripts de l'article:
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize",
"npm install",
"bower install"
]
Lors de l'exécution de compositeur installer " ce sera la cause de la ngp et de verdure à installer toutes leurs dépendances, qui comprennent par défaut devDependencies. Quand il s'agit de faire une production de déploiement (par exemple, "compositeur installer --no-dev" je veux le feu jusqu'à 'npm install --production" et "bower install --production")
Aussi loin que je peux dire, il ne semble pas être un moyen de modifier la liste spécifiée pour la "post-install-commande", en fonction de drapeaux, ou un moyen de définition de variables qui peuvent ensuite être transmis à des commandes en post-install-cmd.
Suis-je raté quelque chose? Il ne semble pas possible d'utiliser composer pour faire à la fois de développement et de production de l'installation en utilisant juste la config. Dois-je vraiment utiliser composer install --no-scripts
sur la production, puis exécuter manuellement tous les quatre des commandes de moi-même? Cela semble un peu maladroit.
OriginalL'auteur Dan B | 2014-08-04
Vous devez vous connecter pour publier un commentaire.
Vous pouvez toujours faire usage de PHP pour faire de l'environnement de détection pour vous, puis d'installer d'autres dépendances à partir du même script. Ce n'est pas agréable et propre, comme notamment les mnp et de verdure en post-install-cmd, mais vous obtenez ce que vous cherchez.
Exemple installer.php:
Vous pourriez faire de cet exemple, plus robuste, et même de créer un Artisan de la commande.
Je pense que c'est une hypothèse juste que mnp est installé, comme l'OP, à condition que ces commandes à l'origine.
Désolé, le commentaire était destiné à l'OP, et je n'ai pas l'intention de down à jouer de votre réponse. Juste une remarque sorta chose. Il peut fonctionner très bien pour l'OP. Mais si le paquet en cours de développement est destiné à la communauté au sens large, il échouera à moins que spécifié explicitement dans les documents d'installation.
Pas de soucis :). À partir de l'OP de la question, je crois qu'il n'a pas l'air d'avoir cette config pour un public, mais au lieu de cela, pour lui, ou de son équipe, dev flux de travail. Il sonne comme il voudrait que le développement des paquets installés pour chaque développeur, puis déployez son site/application, et le déploiement d'utiliser l'option --la production des drapeaux lors de l'installation sur le serveur de production(s).
OriginalL'auteur kfriend
C'est un peu de la bidouille, mais vous pouvez obtenir le parent de la commande PID avec
$PPID
en bash. De ce que vous pouvez obtenir la ligne de commande arguments.Si vous deviez le faire, je l'avais mis dans un script bash et l'exécuter comme ceci:
run-if-env-is-production.sh "bower install --production"
Je recommande @kwoodfriend de la solution au cours de cette même si, comme cela est moins portable car il exige de bash, ps & grep.
OriginalL'auteur dave1010
Ce serait le travail;
c'est à dire, vous devriez être en cours d'exécution "mettre à jour" sur votre environnement de dev, et de ne jamais exécuter "installer" sur votre environnement de production.
Alors je suppose que vous devez exécuter compositeur install' dans le premier et le compositeur de mise à jour. Ne devrait pas être un problème pour les développeurs.
OriginalL'auteur Laurence
Parce que je utiliser npm, bower et gorgée de construire mon actif, je n'ai pas besoin d'eux sur la production, donc, ici, est le compositeur.json-je utiliser:
... Mais il semble étrange pour moi d'utiliser une telle délicat de commande pour détecter l'environnement de dev, ou pas...
OriginalL'auteur loranger