讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在 VSCode 中一键配置 Node 环境的 launch.json 调试文件

酷明姑娘_5200

酷明姑娘_5200

发布时间:2026-07-19 09:57:57

|

614人浏览过

|

来源于php中文网

原创

launch.json必须通过VSCode齿轮图标自动生成,不可手写;否则易遗漏env、cwd、preLaunchTask等关键字段,导致断点不触发、console.log不输出或“No configuration”报错,且configurations数组不能为空,每项须含type、request、name三字段,Node.js调试时program和console为必填。

如何在 vscode 中一键配置 node 环境的 launch.json 调试文件

launch.json 必须用齿轮图标生成,别手写

手动写 launch.json 极易漏掉关键字段,导致断点不触发、console.log 不输出、甚至整个调试面板报 “No configuration”。VS Code 的 ⚙️ 图标(在“运行和调试”面板右上角)会自动注入 env、cwd、preLaunchTask 等隐式依赖项,这些你手写时根本想不到。

常见错误:

  • configurations 字段是空数组 [] 或直接删成 {} —— VS Code 会静默忽略,F5 按下后毫无反应
  • 复制别人配置后只改了 program,却删掉了 type 和 request —— 这两个字段缺一不可,否则配置无效
  • 文件放在 src/.vscode/launch.json 而不是项目根目录的 .vscode/launch.json —— VS Code 只认根目录下的版本

Node.js 调试必须填对 program 和 console

program 是入口文件路径,不是文件名也不是文件夹;console 决定日志是否可见——这两个字段在 type: "node" 时是硬性要求,不是可选。

正确写法:

  • "program": "${workspaceFolder}/index.js" —— 推荐用变量,跨平台且协作安全
  • "console": "integratedTerminal" —— 否则 console.log 会消失,断点悬停也可能失效

错误写法:

  • "program": "index.js" 或 "./index.js" —— VS Code 不解析相对路径前缀,直接报 “Cannot find program”
  • "console": "internalConsole" —— 日志被吞,输入阻塞,调试体验断裂
  • TypeScript 项目写 "program": "${workspaceFolder}/src/index.ts" —— 不编译就跑,必然失败;要么配 preLaunchTask,要么改用 runtimeExecutable: "npx ts-node"

Express/Koa 类 Web 服务优先用 attach 模式

用 request: "launch" 启动 Express 很容易卡住:端口被占、环境变量不一致、子进程 fork 失败、EADDRINUSE 报错反复出现。attach 模式绕过启动环节,先手动跑起来再连,更贴近真实部署态。

Zenlink - Node SDK for ZenHeart
Zenlink - Node SDK for ZenHeart

ZenHeart zenlink 与 zenlink-mcp 为 OpenClaw,涵盖安装、MCP 注册、钩子接线、入站轮询及升级维护。

下载

实操步骤:

  • 终端执行:node --inspect-brk ./bin/www(注意加 --inspect-brk 停在第一行)
  • launch.json 中新增配置:"type": "node"、"request": "attach"、"port": 9229
  • 如果启动时用了 --inspect=9230,port 值必须同步改,否则连接超时
  • Windows 下 cmd 有时连不上,换成 PowerShell,或显式写 --inspect=0.0.0.0:9229

别同时起两个 --inspect 进程——第二个会报 Could not connect to debug target,关掉所有 node 进程再试。

调试失败先查 node 是否可用,再查路径

VS Code 的 Node 调试器不是独立运行时,它只是调用你系统里的 node 命令。如果终端里 node -v 报错,所有配置都白搭。

排查顺序:

  • Mac/Linux:运行 which node,若无输出,检查 nvm 是否加载(source ~/.nvm/nvm.sh),并确认 VS Code 是从该终端启动(code .)
  • Windows:检查系统环境变量 PATH 是否含 C:\Program Files\nodejs\,安装时没勾 “Add to PATH” 就得手动加
  • 改完 PATH 后必须重启 VS Code —— 它不会自动刷新环境变量
  • program 路径必须指向真实存在的 JS 文件,不能是软链(如 node_modules/.bin/ts-node)、不能是文件夹、不能含未转义空格

真正容易被忽略的是:Node 版本低于 8.0 会导致断点灰掉、hover 看不到变量——因为旧版只支持已废弃的 --debug 协议,而 VS Code 调试器只认 --inspect。务必运行 node -v 确认 ≥ 8.0。

热门AI工具

更多
VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

4336

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1335

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1738

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

9903

2023.08.17

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

960

2023.09.01

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2684

2023.09.04

Js中concat和push的区别
Js中concat和push的区别

Js中concat和push的区别:1、concat用于将两个或多个数组合并成一个新数组,并返回这个新数组,而push用于向数组的末尾添加一个或多个元素,并返回修改后的数组的新长度;2、concat不会修改原始数组,是创建新的数组,而push会修改原数组,将新元素添加到原数组的末尾等等。本专题为大家提供concat和push相关的文章、下载、课程内容,供大家免费下载体验。

1549

2023.09.14

js截取字符串的方法介绍
js截取字符串的方法介绍

JavaScript字符串截取方法,包括substring、slice、substr、charAt和split方法。这些方法可以根据具体需求,灵活地截取字符串的不同部分。在实际开发中,根据具体情况选择合适的方法进行字符串截取,能够提高代码的效率和可读性 。

4609

2023.09.21

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

60

2026.10.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn