You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Windows/Linux命令行直接启动Node.js专用DevTools?

直接从命令行启动Node.js专用DevTools的方法

要直接唤起Node.js的专用DevTools窗口(无需手动打开chrome://inspect再点击“Open dedicated DevTools for Node”按钮),你可以利用Chrome/Chromium的命令行参数直接构造对应的DevTools访问URL,结合Node的调试模式实现自动化流程。以下是Windows和Linux系统的具体操作:

核心原理

手动点击“Open dedicated DevTools for Node”触发的chrome.send("open-node-frontend"),本质是打开了一个指向Node调试端口的专用DevTools页面。我们可以通过命令行直接指定这个页面的URL,跳过手动操作步骤。

步骤1:启动Node.js并开启调试模式

首先在终端启动你的Node脚本,开启调试监听(如果需要暂停在脚本开头,用--inspect-brk;如果直接运行等待连接,用--inspect):

# Linux/macOS
node --inspect-brk your-script.js

# Windows
node --inspect-brk your-script.js

这会让Node在默认的9229端口开启调试监听(如果需要自定义端口,用--inspect=9230这样的格式)。

步骤2:从命令行启动专用DevTools窗口

Windows系统

找到Chrome的安装路径(默认路径为C:\Program Files\Google\Chrome\Application\chrome.exeC:\Program Files (x86)\Google\Chrome\Application\chrome.exe),在命令行执行:

start chrome.exe --app="chrome-devtools://devtools/bundled/node_frontend.html?ws=127.0.0.1:9229"
  • --app参数会让Chrome以独立应用窗口模式打开DevTools,和手动点击按钮的效果完全一致
  • 如果自定义了调试端口,把URL中的9229改成你指定的端口号

Linux系统

Chrome/Chromium的默认路径通常是/usr/bin/google-chrome/usr/bin/chromium-browser,执行命令:

google-chrome --app="chrome-devtools://devtools/bundled/node_frontend.html?ws=127.0.0.1:9229"

同样,自定义端口时替换URL中的端口即可。

自动化整个流程

如果你想一键完成“启动Node调试+打开DevTools”的操作,可以写个简单的脚本:

Windows批处理脚本(start-node-devtools.bat

@echo off
:: 启动Node并暂停在脚本开头
start node --inspect-brk your-script.js
:: 等待1秒确保调试端口已开启
timeout /t 1 /nobreak > nul
:: 启动专用DevTools窗口
start chrome.exe --app="chrome-devtools://devtools/bundled/node_frontend.html?ws=127.0.0.1:9229"

Linux Shell脚本(start-node-devtools.sh

#!/bin/bash
# 启动Node调试并后台运行
node --inspect-brk your-script.js &
# 等待1秒
sleep 1
# 启动专用DevTools窗口
google-chrome --app="chrome-devtools://devtools/bundled/node_frontend.html?ws=127.0.0.1:9229" &

给Shell脚本添加执行权限:chmod +x start-node-devtools.sh,之后直接运行即可。

关于你的目标代码

你提到的代码:

launchDedicatedDevToolsForNode();
require('inspector').open(null, null, true); // sync debugger;

require('inspector').open(null, null, true)会启动调试器并等待连接,配合上面的命令行启动DevTools的方式,就能实现自动触发调试流程。注意launchDedicatedDevToolsForNode()是Chrome内部API,无法在Node脚本中直接调用,所以需要用命令行启动Chrome的方式替代。

内容的提问来源于stack exchange,提问作者Franck Freiburger

火山引擎 最新活动