我可以获得node --inspect自动打开Chrome

Jac*_*kie 53 node.js

在新版本的节点中,node-inspector是内置的,可以使用该命令触发node --inspect index.js.但是,这始终提供一个命令行,其中包含您必须插入地址栏的地址.我知道这可能不是最"安全"但有没有办法消除复制和粘贴步骤?

Ali*_*Ali 46

在Chrome 60+中,url中有一个"为节点打开专用DevTools"项chrome://inspect/#devices(以及节点运行时devtools中的node.js图标)打开的检查窗口将在启动或重新启动时连接到node.js ,所以每次都不需要手动打开它.

  • 这很棒但是有没有办法在开发过程中将dev-tools从进程中断开?在我的过程结束时,我在控制台上"等待调试器断开连接..."并且必须"Ctrl + c"或关闭dev-tools窗口才能返回. (6认同)

Adr*_*isa 8

我正在寻找同样问题的答案,我发现了两个不错的工具:

NIM看起来更先进,它能够自动检测节点实例,这些实例在我当前的设置中非常好用.我用来nodemon在文件更改时自动重启节点服务器.更进一步,我设置Webpack与HMR(热模块重新加载),我有完全覆盖/public/server文件夹.我花了两个星期的时间学习如何设置,但现在它开始有所回报.

npm install -g nodemon
npm install -g ts-node // In case you use typescript
Run Code Online (Sandbox Code Playgroud)

nodemon.json

{
    "verbose": false,
    "watch": ["server/**/*.ts"],
    "ext": "ts js json",
    "ignore": ["server/**/*.spec.ts"],
    "exec": "set DEBUG=app:*,-not_this & ts-node --inspect --debug-brk server/main.ts"
}
Run Code Online (Sandbox Code Playgroud)

set DEBUG=app:*,-not_this用于启用Visionmedia调试的输出

(!)现在有一个问题,debug()没有打印在Chrome检查文本,但是至少在文本在命令行中可见的那一刻.我使用命令行来查看调试语句和检查器来扩展对象.

编辑

与此同时,我发现了一个相当丑陋的修复,但我完成了工作,部分...颜色元数据被忽略,更糟糕的是它在字符串中呈现.所以它严重影响了可读性.但是嘿......我有一些日志出来了,更好的是什么都没有.

我最近遇到的另一个问题是NIM没有正确连接.最终我发现我需要127.0.0.1在NIM配置面板中输入实际的IP地址而不是localhost

debugOff 它只是一种临时关闭日志的临时方式,直到我再次需要它们为止.

// Debug
let debugOff = (...any: any[]) => { }, debug = require('debug')('vs:ServerApp');

// Workaround for debug working with node inspector in chrome
let Debug = require('debug');
Debug.log = console.log.bind(console);


/** 
 * Listen for incoming requests
 */
public listen(): void {
    debug('Start server');
    debugOff('Server port:', SERVER.port); // This would be usually too verbose
Run Code Online (Sandbox Code Playgroud)


Ala*_*eay 5

有一个单独的实用程序来执行此操作,称为inspect-process,但没有内置支持.

据我所知,启动检查器并输出该调试消息的(C++)代码在这里:

https://github.com/nodejs/node/blob/master/src/inspector_socket_server.cc

特别是功能InspectorSocketServer::Start,PrintDebuggerReadyMessage

我没有看到在此代码中自动打开浏览器的任何功能(在编写v7.4时),但会建议以下之一:

  1. 在这里打开功能请求https://github.com/nodejs/node/issues
  2. 自己实施该功能并提交PR
  3. 使用检查过程