1

私の中に次のスクリプトがありますpackage.json

"scripts": {
  "start": "babel-node app"
}

を実行するnpm startと、次ps aux | grep nodeの 2 つのプロセスが実行されていることがわかります。

mishamoroshko   18102  58.9  4.2  3173444 174656 s001  S+    2:37pm   0:03.18 node /Users/mishamoroshko/my-project/node_modules/babel/bin/_babel-node app
mishamoroshko   18101   0.0  0.4  3045884  15488 s001  S+    2:37pm   0:00.08 node /Users/mishamoroshko/my-project/node_modules/.bin/babel-node app

私のアプリはどれですか? 2 つのプロセスで実行されるのはなぜですか?

4

1 に答える 1

3

babel-nodeはルート プロセスであり、_babel-node実際にアプリケーションを実行しているプロセスを生成します。

デフォルトでは、Babel はサブプロセスに渡された引数を処理した後に子 Node プロセスを生成しますが、親プロセスは存続します (これが表示されていることです)。そのロジックはこちらで確認できます。

そのファイルを見ると、Babel でサポートされている 1 つのオプションは、Babelkexecと一緒にインストールできることです。これは、フォールバックして子プロセスを生成する前に使用を試みます。がインストールされている場合kexec、親 Node プロセス全体が子によって置き換えられるため、リストには 1 つのプロセスしかありません。

したがって、この動作を停止したい場合は、横にを追加kexecするだけです。package.jsonbabel

于 2015-06-03T05:34:05.490 に答える