为什么" babel-node"旋转2个进程?

时间:2015-06-03 05:11:40

标签: node.js babeljs

我的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

哪一个是我的应用,为什么它在两个进程中运行?

1 个答案:

答案 0 :(得分:3)

babel-node是根进程,它会生成_babel-node,这是实际执行应用程序的进程。

默认情况下,Babel在处理传递给子进程的参数后生成子进程,但父进程保持活动状态(这就是您所看到的)。你可以看到逻辑here

查看该文件,Babel支持的一个选项是,您可以在Babel旁边安装kexec,它将尝试使用它,然后再回到产生子进程。如果安装了kexec,则整个父节点进程将被子节点替换,因此您的列表中只有一个进程。

因此,如果您希望停止此行为,只需将kexec添加到package.json旁边babel