VS Code `launch.json` 指南(Node.js版)-Day30
发布时间:2026/8/29 19:02:01 作者:尧图编辑部 阅读量:1,286
-Day30)
一、launch.json是什么简单说它就是 VS Code 的**“调试启动器说明书”**。平时你调试 Node.js 程序可能是在终端里输入nodeindex.js而launch.json就是告诉 VS Code“以后我按 F5 的时候你就帮我执行这条命令并且挂上调试器”。文件位置你的项目/ ├── .vscode/ │ └── launch.json ← 在这里 ├── index.js └── package.json二、Node.js 最常用的 4 种配置下面这 4 个配置覆盖了 90% 的日常场景直接复制就能用。场景 1调试当前打开的 JS 文件适合写了个小脚本想快速跑一下看看结果。{version:0.2.0,configurations:[{name:运行当前文件,type:node,request:launch,program:${file}}]}用法在 VS Code 里打开某个.js文件 → 按F5就会运行这个文件。${file}是个变量表示当前打开的文件。场景 2调试 Express / Koa 服务器适合后端 API 开发启动一个 HTTP 服务。{version:0.2.0,configurations:[{name:启动服务器,type:node,request:launch,program:${workspaceFolder}/server.js,env:{NODE_ENV:development,PORT:3000},console:integratedTerminal}]}关键字段解释字段作用program服务器入口文件路径${workspaceFolder}表示项目根目录env环境变量这里设置了开发模式和端口号console输出到哪里integratedTerminal表示 VS Code 内置终端场景 3用 npm 脚本启动推荐适合项目用npm start或npm run dev启动比如 Next.js、NestJS 项目。{version:0.2.0,configurations:[{name:npm run dev,type:node,request:launch,runtimeExecutable:npm,runtimeArgs:[run,dev],console:integratedTerminal}]}等价于在终端执行npmrun dev只是 VS Code 会自动挂上调试器你可以在代码里打断点。场景 4Attach 到已运行的进程配合 nodemon适合用nodemon启动服务想在不重启的情况下附加调试。第一步用带--inspect的方式启动程序nodemon--inspectindex.js# 或者node--inspectindex.js终端会输出Debugger listening on ws://127.0.0.1:9229第二步launch.json配置{version:0.2.0,configurations:[{name:附加到进程,type:node,request:attach,port:9229,restart:true}]}⚠️request不是launch是attach“request”: “attach”, // ← 我不启动新程序我去连一个已有的“port”: 9229, // ← 连哪个端口就连上面开的 9229“restart”: true // ← 如果程序重启了自动重新连restart: true的作用当你修改代码后nodemon会自动重启服务调试器也会自动重新连上不用手动操作。三、一个全能版配置把上面 4 个场景合并到一个文件里按F5旁边的下拉框切换{version:0.2.0,configurations:[{name:▶ 运行当前文件,type:node,request:launch,program:${file},console:integratedTerminal},{name: 启动服务器,type:node,request:launch,program:${workspaceFolder}/server.js,env:{NODE_ENV:development},console:integratedTerminal},{name: npm run dev,type:node,request:launch,runtimeExecutable:npm,runtimeArgs:[run,dev],console:integratedTerminal},{name: 附加到 nodemon,type:node,request:attach,port:9229,restart:true}]}四、常见问题1. 断点打上去是灰色的不生效原因你运行的是编译后的代码比如 TypeScript 转成的 JS但断点打在源文件上。解决需要配置sourceMap或者直接用 ts-node 调试{name:调试 TypeScript,type:node,request:launch,runtimeExecutable:npx,runtimeArgs:[ts-node,${file}],console:integratedTerminal}2. 环境变量没生效检查优先级launch.json里的env会覆盖系统环境变量。如果你同时用了.env文件建议装dotenv扩展或者在runtimeArgs里加载。3. 按 F5 没反应检查 VS Code 左下角是否显示了正确的调试配置名称。如果没有launch.jsonVS Code 会尝试自动推断但不一定准。4. 怎么传命令行参数args:[--port,3000,--verbose]这等价于nodeserver.js--port3000--verbose五、快速上手步骤打开你的 Node.js 项目按CtrlShiftD或点击左侧调试图标点击创建 launch.json 文件 → 选择Node.jsVS Code 会自动生成基础配置根据上面的模板修改保存按F5开始调试六、调试快捷键按键作用F5启动 / 继续运行Shift F5停止F9在当前行打断点F10单步跳过不进入函数内部F11单步进入进入函数内部总结launch.json就是告诉 VS Code“按 F5 时怎么启动我的 Node 程序”。最常用就 4 种模式——运行当前文件、启动服务器、执行 npm 脚本、附加到已有进程。配好一次团队所有人都能直接用。