我为我的mean-io堆栈应用程序运行gulp。
我收到以下错误。
13:15:54] Starting 'server'...
13:15:54] Finished 'server' after 47 ms
13:15:54] Live reload server listening on: 35729
.. Uhoh. Got error listen EADDRINUSE ...
rror: listen EADDRINUSE
at errnoException (net.js:901:11)
at Server._listen2 (net.js:1039:14)
at listen (net.js:1061:10)
at Server.listen (net.js:1127:5)
我猜端口 35729 正在被其他应用程序使用。我对吗?我还尝试更改 livereload.js 中的端口号。但后来,我遇到了同样的错误。
在下面的文件中,我看到分配了 35729 端口号。请告诉我是否应该在任何地方更改端口号。
myApp\node_modules\grunt-contrib-watch\node_modules\tiny-lr-fork\lib\public\livereload.js:
321: this.port = 35829;
myApp\node_modules\grunt-contrib-watch\node_modules\tiny-lr-fork\lib\server.js
20: options.port = parseInt(options.port || 35729, 10);
myApp\node_modules\grunt-contrib-watch\node_modules\tiny-lr-fork\node_modules\noptify\index.js:
21: // .option('port', '-p', 'Port to listen on (default: 35729)', Number)
myApp\node_modules\grunt-contrib-watch\node_modules\tiny-lr-fork\bin\tiny-lr:
14: .option('port', '-p', 'Port to listen on (default: 35729)', Number)
18: opts.port = opts.port || 35729;
谢谢。
最佳答案
使用 gulp
时,我发现有时终止我的进程将无法关闭 livereload
上的连接端口 35729。这会留下一个打开的文件描述符在该端口上监听,这将使我的服务器很难再次启动,因为 gulp
一启动就会报错livereload
.
有时您不知道拥有该连接的进程的名称,因此很难找到并杀死它。要列出使用 TCP 监听端口的处理器打开的文件,您可以使用 lsof -n -i4TCP:#####
命令。在这种情况下,您将得到:
$ lsof -n -i4TCP:35729
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 15723 testuser 24u IPv6 0x71823b3990749ea5 0t0 TCP *:35729 (LISTEN)
现在您已经有了正在尝试访问的端口上监听的进程的 PID,因此您可以使用以下命令杀死它
$ kill -9 15723
现在正在运行 gulp
应该可以正常工作:)
关于node.js - EAddrInUse 用于实时重新加载 - Node js - 在运行 gulp 命令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26156913/