Pm2パッケージでノードプロセスを管理したい。私のコードにes6構文がないため、babel-nodeを追加する必要はありません。また、es6構文コードがなければ、このコード行でpm2を使用してコードを実行できます。
pm2 start server.js
しかし、次のようなes6構文のコード行を追加するとすぐに
import express from 'express';
予期しないトークンのインポートエラーが発生します。
この問題を解決するには、babel-nodeパッケージを追加する必要があります。
しかし、このコマンド行を使用してコードをコンパイルすると
pm2 start server.js --interpreter babel-node
私はこのエラーを受け取ります
Error: spawn babel-node ENOENT
at _errnoException (util.js:1022:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)
これについて奇妙なことは、pm2を使用せずに次のコード行でコードを実行する場合です。
babel-node server.js
全て大丈夫。
yarn add babel-cli
を使用してプロジェクトにbabel-cliをインストールすると、pm2 start ./server.js --interpreter ./node_modules/babel-cli/bin/babel-node.js
を実行できます
私はpm2を使い始めたばかりで、 this が役立つことがわかりました。
Es6 jsを実行するnpmスクリプトがあります。
{
...
"scripts": {
"server": "babel-node ./src/server.js"
},
...
}
次に、それをpm2で実行するには、pm2 start npm -- run server
を使用します。babel-cli
がグローバルにインストールされていることを確認してください。
エラーを追跡するには、pm2ログファイルを確認してください。ログファイルの場所は/root/.pm2/です。