繁体   English   中英

PM2和babel始终“正在使用端口”

[英]PM2 and babel always “Port is in use”

我已经使用PM2运行和监视节点进程已有一段时间了,在我尝试使用babel之前,它工作正常。

我不确定真正的问题是什么,但是当我使用babel启动项目时,它无法停止显示Port 3000 is already in use

该项目是另一个项目的副本。 除了package.jsonscripts外,它们几乎相同。

"scripts": {
    "start": "npm run babel | node ./bin/www",
    "babel": "./node_modules/.bin/babel server -d lib"
}

原始的要简单得多

"scripts": {
    "start": "node ./bin/www"
  }

我使用run process.jsonrun process.json ,并在项目中使用babel添加"exec_interpreter": "babel-node"

我还为复制项目安装了一些新软件包,包括babel,babel-core,babel-loader,react,react-dom,react-hot-loader,webpack和webpack-dev-server。 我将代码从ES5更改为ES6,这就是我使用babel的原因(是的,我正在尝试使用react并根据正常的快速项目转移到ES6)

当我重新启动Mac并运行没有babel的原始项目时,一切都很好。 然后,我停止该过程,并继续使用babel启动该项目,该项目将继续抛出Port 3000 is already in use

COMMAND    PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Google     394 brick   14u  IPv6 0x432e592f22d3b26b      0t0  TCP localhost:52261->localhost:hbci (CLOSE_WAIT)
Google     394 brick   16u  IPv6 0x432e592f22d397ab      0t0  TCP localhost:52262->localhost:hbci (CLOSE_WAIT)
Google     394 brick  213u  IPv6 0x432e592f246f87ab      0t0  TCP localhost:52264->localhost:hbci (CLOSE_WAIT)
node      1210 brick   13u  IPv6 0x432e592f22d377ab      0t0  TCP *:hbci (LISTEN)

我在外壳中使用lsof -i:3000 ,它显示有一个节点进程,并且2-3个名为Google进程(我正在使用chrome)正在使用该端口。 即使我终止了该过程,它也会重新出现(具有不同的pid)。

我不知道出什么问题了。

在GitHub中解决了这个问题。 的确是案例通天塔。 解决方法之一是在条目文件中使用babel的require钩子

可以在这里阅读更多讨论: https : //github.com/Unitech/pm2/issues/1643

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM