Lorsque je transmets mon code à OpenShift, il semble que cela installe mon devDependencies
ce qui prend une éternité . --production
vraiment le configurer pour qu’il n’installe que les dependencies
(en exécutant avec le drapeau --production
). Y a-t-il un moyen de faire ça?
Vous pouvez indiquer à npm d’installer à l’aide de l’indicateur --production
en définissant la variable d’environnement NPM_CONFIG_PRODUCTION
sur ” true
“.
Voici un exemple qui devrait fonctionner pour les applications existantes:
rhc env set NPM_CONFIG_PRODUCTION="true"
Ou, vous pouvez définir cette variable dans le cadre de votre étape initiale de création d’application:
rhc app create myapplication nodejs-0.10 NPM_CONFIG_PRODUCTION="true"
Trouver un moyen de le spécifier dans le source plutôt que lors de la création de l’application. L’avantage (pour moi) d’une variable env est qu’elle s’applique à toutes les manières de lancer l’application, y compris un bouton “Lancer sur OpenShift”.
Créez un .openshift/action_hooks/pre_build
:
#!/bin/bash # This makes npm not install devDependencies. echo 'Enabling npm production' echo 'production = true' >> $OPENSHIFT_REPO_DIR/.npmrc
C’est tout! J’ai testé et cela affecte npm pour cette construction, et le .npmrc disparaît si vous supprimez ce hook à l’avenir.
(Évidemment, je pourrais également y parvenir en ajoutant simplement un .npmrc
à mon .npmrc
, mais je ne souhaite pas affecter les personnes qui vérifient le code source et qui exécutent l’ npm install
, mais uniquement son fonctionnement sous OpenShift.)
Il semble que la seule solution consiste à mettre à jour la cartouche elle-même. La commande npm install se trouve dans le dossier bin / control de la cartouche. Pendant ce temps, il a été corrigé dans le repository github d’origine à wshearn / openshift-origin-cartouche-nodejs afin que vous puissiez simplement installer à partir de github plutôt que d’utiliser Quickstart.
Créez un fichier .npmrc
où se trouve le dossier node_modules
.
Ouvrez-le avec votre text-editor
et ajoutez ceci:
production = true
PS pas de points-virgules ou d’autres caractères
Cela garantira que devDependencies
n’est pas installé sur le serveur OPENSHIFT