节点重新启动时如何重新启动节点检查器?

我使用节点检查器很多 。 当我编辑我的代码并重新启动时,我得到了不可避免的

从目标分离

新stream程启动时出错。 我总是不得不去查找选项卡节点检查器打开并重新启动它。

我想知道是否可以避免这一点。 例如,从节点向node-inspector发送一条消息,告诉运行node-inspector的浏览器选项卡重新启动。

       

网上收集的解决方案 "节点重新启动时如何重新启动节点检查器?"

从这个SO稍微交叉发布,并更新了这个主题。

Chrome(58)标准开发者窗格中有一个链接,它打开了一个新的“无头”窗口,无论应用程序是如何重build/重新启动的,都可以神奇地重新连接到节点检查。

我正在运行Express.js,例如DEBUG=myapp:* supervisor -- --inspect bin/www &并且发现使用正常的引导URL不断变化很难重新连接。 但是这个Chrome工具整天都在可靠地重新连接。

在Threads> Main下,你应该看到“Node instance available。Connect”。 在这里输入图像描述

我发现新窗口不太可用,因为我更喜欢一个标签,但自动重新连接是如此可靠,我会忍受!

我发现唯一的缺点是它重新连接清除所有断点。

当debugging过程重新启动时,您不必重新启动Node Inspector进程。 您只需使用Node Inspector GUI重新加载浏览器选项卡即可。

恐怕目前没有简单的方法来自动重新加载Node Inspector GUI页面,当您的debugging进程重新启动。 在Node Inspector后端中可能会执行某种活动的轮询,但这是一个必须由某人执行的function。

根据您正在debugging的应用程序的哪一部分,您可能会发现有用的function“现场编辑”。 它允许您从Node Inspector编辑您的代码,将更改保存到Node / V8运行时并可能还回到磁盘。 这样,在进行更改之后,您不必重新启动已debugging的进程。


此function已在Node Inspector中实施并在v0.7.0中发布。 请参阅问题#266了解更多详情。

此function已在Node Inspector中实施并在v0.7.0中发布。 请参阅问题#266了解更多详情。

以前的答案是一个解决方法:

我写了一个简单的js脚本来执行greasemonkey / tampermonkey。

该脚本在地址为http://127.0.0.1:8080/debug?port=5858标签上查找“脱离目标”消息。 一旦消息可见,页面将重新加载直到消失。

此解决scheme是一种解决方法。 这不应该被认为是理想的解决scheme(我同意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(); 

当然,这很容易。 首先安装npm install -g nodemon

然后你可以运行node-inspector & nodemon --debug app.js

(用你的脚本的名字replaceapp.js

虽然在语法错误,您仍然可能需要手动重新加载节点检查器选项卡