2017-09-01 3 views
1

Je veux diaboliser mon serveur express js graphql api. Dans les fenêtres dev local, je peux commencer mon serveur en exécutant cette commande et il fonctionne très bien:Comment démarrer un script package.json en pm2

yarn dev

Cette commande de démarrage est défini dans mon package.json comme ceci:

"scripts": { 
    "dev": "cross-env NODE_ENV=development DEBUG=express:* nodemon --exec babel-node src/index.js" 
    }, 

Lorsque je tente de commencer cela en PM2 dans mon serveur linux, je reçois un succès comme celui-ci:

[email protected]:~/apps/tweet/server$ pm2 start yarn -- dev 
[PM2] Starting /usr/bin/yarn in fork_mode (1 instance) 
[PM2] Done. 

Cependant, quand je tape pm2 status il dit erreur et aussi l'affichage ressemble vraiment étrange:

enter image description here

Je courais sur ce Ubuntu 16.04.

Si je n'utilise pas le pm2 et que je démarre l'application sur mon serveur Ubuntu avec yarn dev - cela fonctionne bien.

Des idées?

+0

Nodemon a été en mesure de regarder les modifications de fichiers et redémarrez le serveur, alors peut-être que vous n'avez pas besoin d'utiliser pm2? – WangJie

+0

Oui, je le réalise maintenant. J'essaye de mettre en place une config JSON pour le pm2 moins le Nodemon. – Latheesan

Répondre

0

J'ai maintenant résolu ce problème.

Installez le babel-node globalement via: npm install -g babel-cli

Ensuite, créez la PM2 config dans JSON: pm2.json

{ 
    "apps": [ 
     { 
      "name": "Tweet GraphQL Server", 
      "exec_interpreter": "babel-node", 
      "script": "index.js", 
      "merge_logs": true, 
      "cwd": "./src", 
      "env": { 
       "NODE_ENV": "production" 
      } 
     } 
    ] 
} 

Maintenant, je peux exécuter cette commande pour démarrer le processus de PM2: pm2 start pm2.json

0

Pm2 prend désormais en charge npm

$ pm2 start --interpreter babel-node server.js 

(ou)

$ pm2 start npm --start 

(ou)

$ pm2 start npm --name "myAPP" --start 

(ou)

$ pm2 start npm --name "{app_name}" --run "{script_name}"