vscode调试electron主进程本质是调试带特定参数的node.js进程,需严格对齐node.js版本(v18.15.0–v20.14.0)、本地electron安装(≥38.1.2)及launch.json中type为"node"、args顺序为["--inspect=9229","."]、runtimeexecutable指向本地二进制路径,缺一即断点灰、ipc失效。

VSCode 调试 Electron 主进程,本质是调试一个带特定参数的 Node.js 进程,不是“配个 launch.json 就能跑”。断点灰掉、app 是 undefined、IPC 失效,90% 都是因为 Node.js 版本、Electron 安装方式、launch.json 三者中有一项没对齐。
Node.js 版本必须卡在 v18.15.0–v20.14.0
Electron ≥38.1.2 与 Node.js 的 ABI 兼容性窗口非常窄。v22+ 会直接报 ERR_MODULE_NOT_FOUND;v16 或更早则触发 DEP0148,导致 ipcRenderer 无法序列化函数、contextBridge.exposeInMainWorld 失效。
- 用
nvm install 20.14.0 && nvm use 20.14.0切换,然后运行node -v和npm -v(要求 ≥9.5.0)确认 - 不要依赖系统自带或全局安装的 Node.js —— VSCode 默认读取 PATH,容易误用旧版本
- 项目根目录下加
.nvmrc文件写入20.14.0,配合nvm use自动生效
Electron 必须本地安装且 runtimeExecutable 指向 .bin
全局安装 electron(npm install -g electron)会导致 VSCode 启动的 Electron 二进制和 require('electron') 加载的模块版本不一致,断点根本连不上调试器。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 执行
npm install electron@38.1.2 --save-dev(或更高 patch 版),确保node_modules/electron存在 -
runtimeExecutable必须设为:"${workspaceFolder}/node_modules/.bin/electron"(macOS/Linux)或"${workspaceFolder}/node_modules/.bin/electron.cmd"(Windows) - 绝对不要写成
"electron"或"npx electron"—— 这些会绕过本地安装路径,命中全局命令
launch.json 中 args 顺序和 type 是硬约束
type: "electron" 已被弃用,自 Electron 12+ 起就不再适配 V8 Inspector 协议;args 顺序错一位,--inspect=9229 就会被 Electron 忽略。
-
"type": "node"—— 不是"electron",也不是"pwa-node" -
"args": ["--inspect=9229", "."]——--inspect=9229必须在.前面,颠倒即失效 - 删掉
"sourceMaps"和"outFiles"(除非你用 TypeScript 或打包工具)—— 纯 JS 项目加了反而干扰路径解析 - 加上
"env": { "ELECTRON_ENABLE_LOGGING": "true" },否则白屏、IPC 报错都看不到任何线索
渲染进程调试必须另起一条 pwa-chrome 配置
VSCode 不支持单条配置同时 attach 主进程和渲染进程。主进程启动后,必须等窗口 ready 才能 attach 渲染器,否则 devtools 连不上。
- 主进程中,在
'ready-to-show'事件里调用win.webContents.openDevTools({ mode: 'detach' }) - 渲染进程配置
"type": "pwa-chrome","request": "attach","port": 9222 - 不能复用主进程的
--inspect=9229端口 —— Chromium 渲染器默认走 9222,硬改需同步改openDevTools的devToolsWebContents参数 - 如果用了
contextIsolation: true(强烈推荐),preload.js里必须显式暴露 API,否则ipcRenderer在渲染进程不可见
真正卡住人的地方从来不是配置项数量,而是 Node.js 版本、Electron 安装路径、args 顺序这三点必须全部对齐 —— 少一个,断点就灰,日志也不出,连问题在哪都看不见。










