Comment puis-je vérifier si mon pm2 application NODE_ENV est configuré?
Donc je viens de déployer un site avec nœud et pm2, pour la première fois et je vais revenir et de faire une optimisation et de la lecture les meilleures pratiques, etc.
J'ai lu que vous pouvez obtenir un grand nombre de prestations par la mise en NODE_ENV=production
.
J'ai trouvé ça dans les pm2 docs:
[process.json]
"env_production" : {
"NODE_ENV": "production"
}
...
$ pm2 start process.json --env production
Donc je l'ai fait mais je n'ai aucune idée si c'est le travail. Tout en essayant de comprendre comment le vérifier, j'ai appris à essayer:
$ node
> process.env.NODE_ENV
> undefined
Donc, ce n'est pas un bon signe.. mais, avec ma compréhension limitée de la façon dont le faible niveau œuvres de trucs, je peux deviner que peut-être pm2 se lance à chaque application comme un nœud distinct du processus? Alors peut-être je ne suis pas dans le bon processus, lorsque j'essaie de le vérifier.
Aussi, je ne sais pas si je dois faire une nouvelle ~/.pm2/dump.pm2 fichier parce que peut-être chaque fois que cela est peut-être en substituant les options que j'ai mis? (parce que j'ai utilisé pm2 startup
).
Comment puis-je vérifier si mon pm2 application NODE_ENV est réglé?
OriginalL'auteur Kenmore | 2016-06-23
Vous devez vous connecter pour publier un commentaire.
Edit 2:
Plus explicite répondre à la question dans le titre:
Dans votre script, pour m'Exprimer de l'application
app.js
fichier, vous pouvez utiliserprocess.env.NODE_ENV
pour obtenir la valeur actuelle deNODE_ENV
et journal si vous le souhaitez.Une meilleure façon de le faire est d'utiliser PM2 du Processus de Métriques module, aka
pmx
.ou
puis
Maintenant, il sera affiché dans les appels aux pm2 montrer
<appname>
(en bas) ou en pm2 monit (en bas à gauche).Edit 1:
Il semble que tout ce qui est réellement nécessaire est que vous arrêter et redémarrer le processus de modification de votre environnement.
La suite n'est pas assez bon:
Vous devez tuer le processus
Réponse originale à cette question:
Donc, je l'ai eu à travailler. Je pense qu'il avait quelque chose à voir avec l'environnement d'être enregistré dans le script d'initialisation, car après tout effacer et de recommencer, il a travaillé.
Voici comment je l'ai fait.
De sortie de la commande suivante pour moi de copier-coller:
Et puis:
pm2.json
est mon fichier de config.Et puis j'ai vérifié les logs et, bien sûr, dit-il
production
au lieu deundefined
.Donc, pour résumer, je ne pense pas que j'avais quelque chose de mal mais je l'avais déjà généré le script d'initialisation et enregistré le fichier de configuration et il n'était pas à l'aide de ce nouvel environnement pour une raison quelconque.
pm2 kill
ed, et qui était absolument nécessaire.Comment pensez-vous de définir des variables d'environnement dans les pm2 production? Pour eg. Je veux mettre du processus.env.MONGODB_URI.
Vous pouvez le faire dans votre fichier de configuration (cela peut être un .fichier json comme les pm2.json dans mon exemple ou dans les docs, ils appellent ça l'écosystème de fichier: ecosystem.config.js). pm2.io/doc/fr/runtime//guide de l'écosystème-fichier . Il y a probablement un moyen de le faire dans la CLI, il suffit de regarder la CLI page de la documentation.
OriginalL'auteur Kenmore
Votre processus.fichier json est incomplète. Essayez d'utiliser quelque chose comme ceci:
Puis ajouter de l'enregistrement dans votre code, de préférence somwhere au démarrage:
Maintenant démarrer l'application:
Enfin regarder app journaux:
Cela devrait le faire.
OriginalL'auteur Roman Stetsyshin
Peut-être au début de votre script de serveur vous pouvez imprimer la valeur de la variable d'environnement et de vérifier ensuite les PM2 journaux. Utilisez le code suivant pour imprimer votre variable d'environnement valeur:
Et ensuite utiliser le code suivant pour voir les PM2 journaux
pm2 journaux app_name
Ici
app_name
est votre nom de processus comme indiqué par l'entrée dans leprocess.json
fichier.OriginalL'auteur yeiniel
Démarrer avec
npm
en ajoutant ceci à votrepackage.json
:Puis
Vous pouvez le faire directement, mais c'est facile à gérer, automatiser avec
crontab
et est dans votre contrôle de code source...OriginalL'auteur malix