web-dev-qa-db-ja.com

pm2でbabel-nodeを使用する方法

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

全て大丈夫。

6
jsDevia

yarn add babel-cliを使用してプロジェクトにbabel-cliをインストールすると、pm2 start ./server.js --interpreter ./node_modules/babel-cli/bin/babel-node.jsを実行できます

10
Peter

私はpm2を使い始めたばかりで、 this が役立つことがわかりました。

Es6 jsを実行するnpmスクリプトがあります。

{
  ...
  "scripts": {
    "server": "babel-node ./src/server.js"
  },
  ...
}

次に、それをpm2で実行するには、pm2 start npm -- run serverを使用します。babel-cliがグローバルにインストールされていることを確認してください。

6
Moosch

エラーを追跡するには、pm2ログファイルを確認してください。ログファイルの場所は/root/.pm2/です。

0
Ehsan sarshar