这个过程原样:
使用--debug --inspect:
启动代码 "debug": "node --max-old-space-size=8192 --debug=5567 --inspect dist/index.js",
打开带有网址的devtools,例如:
chrome-devtools://devtools/remote/serve_file/@62cd277117e6f8ec53e31b1be58290a6f7ab42ef/inspector.html?experiments=true&v8only=true&ws=localhost:9229/node
做一些调试。
意识到你有一个bug,杀死进程(Ctrl-C)并进行代码更改。
重新启动。
开始失败:Unable to open devtools socket: address already in use
意识到您必须手动刷新chrome-devtools
页面才能让它意识到该过程不再可用。
节点检查员对此更好。有什么我想念的吗?一些标志会使chrome-devtools
自动从已停止的进程中分离出来?
$ versions
npm 3.10.3
node v6.7.0
OS Darwin 15.6.0 Darwin Kernel Version 15.6.0
编辑:我开始使用 Node Inspector Manager (Chrome扩展程序),发现整个过程变得更好。
答案 0 :(得分:2)
我没有遇到这个问题,chrome-devtools向我显示了一条消息,即当我Ctrl-C
节点进程时,调试连接已关闭。
你在运行什么系统?也许这是在较新的Node或Chrome版本中修复过的东西?或者,您的Node应用程序中有一些东西阻止了套接字的正常关闭。您可以尝试使用简单的脚本吗?
jcollum在这里(user835611应该得到答案,因为他们给我打电话):
我有两个过程终止信号的监听器:
process.on('SIGINT', function() {
logger.warn('SIGINT received. Shutting down.');
return process.exit(0);
});
process.on('SIGTERM', function() {
logger.warn('SIGTERM received. Shutting down.');
return process.exit(0);
});
原来那些阻止chrome的开发工具看不到关机。我不知道这是怎么回事,但这就是我所观察到的。评论process.exit
没有改变。多么奇怪,似乎在SIGTERM / INT
事件上有一个监听器会阻止Chrome的开发工具看到该进程已退出。从未见过来自事件监听器的副作用。