Exécutez npm install –production sur OpenShift

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.

  1. Créez un fichier .npmrc où se trouve le dossier node_modules .

  2. 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