我经常使用节点检查器。当我编辑我的代码并重新启动时,我得到了不可避免的
与目标分离
新进程启动时出错。我总是要找到选项卡节点检查器打开并重新启动它。
我想知道我是否可以避免这种情况。例如,从 node 向 node-inspector 发送一条消息,告诉运行 node-inspector 的浏览器选项卡重新启动。
我经常使用节点检查器。当我编辑我的代码并重新启动时,我得到了不可避免的
与目标分离
新进程启动时出错。我总是要找到选项卡节点检查器打开并重新启动它。
我想知道我是否可以避免这种情况。例如,从 node 向 node-inspector 发送一条消息,告诉运行 node-inspector 的浏览器选项卡重新启动。
重新启动调试的进程时,您不必重新启动 Node Inspector 进程本身。您需要做的就是使用 Node Inspector GUI 重新加载浏览器选项卡。
恐怕目前没有简单的方法可以在重新启动调试进程时自动重新加载 Node Inspector GUI 页面。在 Node Inspector 后端执行某种主动轮询可能是可能的,但这是必须由某人实现的功能。
根据您正在调试的应用程序的哪个部分,您可能会发现“实时编辑”功能很有用。它允许您从 Node Inspector 编辑您的代码,将更改保存到 Node/V8 运行时并可能还回磁盘。这样您就不必在进行更改后重新启动调试过程。
此功能已在 Node Inspector 中实现并在 v0.7.0 中发布。有关更多详细信息,请参见问题 #266。
此功能已在 Node Inspector 中实现并在 v0.7.0 中发布。有关更多详细信息,请参见问题 #266。
以前的答案是一种解决方法:
我写了一个简单的js脚本,由greasemonkey/tampermonkey执行。
该脚本在带有地址的选项卡上查找消息“与目标分离” http://127.0.0.1:8080/debug?port=5858
。一旦消息可见,页面就会重新加载,直到它消失。
此解决方案是一种解决方法。它不应该被认为是理想的解决方案(我同意 Miroslav),如下:
// ==UserScript==
// @name Reload node-inspector tab
// @version 0.1
// @description looks for the detached message and auto reload the page
// @match http://127.0.0.1:8080/debug?port=5858
// ==/UserScript==
var exec = function(){
setTimeout(function(){
var el = document.getElementsByClassName("help-window-title")[0];
if(el && el.innerHTML == "Detached from the target"){
location.reload();
} else {
setTimeout(function(){ exec(); }, 1000);
}
}, 1000);
};
exec();
第1步。 请勿使用node-inspector
- chrome 团队已发布新作品,无法与 node-inspector 模块集成。继续前进,如果您继续使用node-inspector
.
第2步。要运行您的脚本,请使用: nodemon --inspect-brk yourScript.js
- brk 部分在第一行代码上创建一个自动断点。如果您尚未安装 nodemon,请先使用:npm install -g nodemon
。
第三步。然后打开 chrome 应用程序,打开 chrome 开发工具(F12
或Ctrl+Shift+I
)并单击节点图标,如下所示:
第4步。进行更改yourScript.js
- chrome devtools 会自动为您在项目中所做的每项更改重新加载调试器。这是因为 nodemon 监视项目文件夹并重置进程 - 这会重置调试器连接。
更多信息:2017 年使用 Node.js 进行调试- 我在 2019 年 8 月 29 日写这篇文章,但 2 年后仍然相关。
从这个 SO稍微交叉发布,并更新这个主题。
Chrome (58) 标准开发人员窗格中有一个链接,它打开一个新的“无头”窗口,无论应用程序如何重建/重新启动,它都会神奇地重新连接到节点检查。
我正在运行 Express.js DEBUG=myapp:* supervisor -- --inspect bin/www &
,例如发现很难使用不断变化的正常 guid-laden URL 重新连接。但是这个 Chrome 工具可以整天可靠地重新连接。
在 Threads > Main 下,您应该看到“Node instance available. Connect”。
我发现新窗口不太好用,因为我更喜欢标签,但自动重新连接非常可靠,我会忍受的!
我发现的唯一缺点是当它重新连接时它会清除所有断点。
当然,这很容易。首次安装npm install -g nodemon
然后你可以运行node-inspector & nodemon --debug app.js
(将app.js替换为您的脚本名称)
尽管出现语法错误,您仍然可能需要手动重新加载节点检查器选项卡