0

0

VSCode如何调试Node.js应用程序 VSCode调试Node.js的完整配置流程

星夢妙者

星夢妙者

发布时间:2025-07-31 21:01:01

|

1067人浏览过

|

来源于php中文网

原创

配置launch.json文件是vscode调试node.js应用的核心,需在项目根目录的.vscode文件夹中创建并设置调试参数;2. 基础配置包括指定type为node、request为launch、正确设置program入口文件路径,并可配置env环境变量和console输出方式;3. 调试带参数的程序时,在launch.json中添加args数组传入命令行参数;4. 调试使用nodemon的程序需将request设为attach,启动nodemon --inspect后通过pickprocess选择进程附加;5. 调试typescript程序需在launch.json中设置prelaunchtask执行tsc编译任务,启用sourcemaps并指定outfiles路径,同时配置tasks.json和tsconfig.json支持编译和sourcemap生成;6. 遇到"cannot connect to runtime process"错误时,应检查端口冲突、防火墙设置、node.js版本、是否启用--inspect及launch.json配置正确性;7. 调试时可通过variables面板查看变量、watch面板监控表达式、调试控制台执行和修改变量值,以及悬停提示快速查看变量内容,从而高效定位和解决问题。

VSCode如何调试Node.js应用程序 VSCode调试Node.js的完整配置流程

VSCode调试Node.js应用的核心在于配置launch.json文件,指定调试环境和入口文件。配置正确,就能在VSCode里打断点,单步调试,爽歪歪。

VSCode如何调试Node.js应用程序 VSCode调试Node.js的完整配置流程

配置VSCode调试Node.js的完整流程:

  1. 创建.vscode/launch.json文件: 在你的Node.js项目根目录下,如果还没有.vscode文件夹,就新建一个。然后在.vscode文件夹里创建一个launch.json文件。

    VSCode如何调试Node.js应用程序 VSCode调试Node.js的完整配置流程
  2. 配置launch.json 打开launch.json文件,复制粘贴下面的配置。当然,根据你的项目情况,需要修改一些地方。

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "${workspaceFolder}/app.js",
      "console": "integratedTerminal",
      "internalConsoleOptions": "neverOpen",
      "env": {
        "NODE_ENV": "development"
      }
    }
  ]
}
*   `"type": "node"`:  指定调试类型为Node.js。
*   `"request": "launch"`:  指定启动调试。
*   `"name": "Launch Program"`:  调试配置的名称,随便起,方便你自己识别就行。
*   `"program": "${workspaceFolder}/app.js"`:  指定要调试的入口文件。  `${workspaceFolder}`  表示当前项目根目录。  `app.js`  改成你的入口文件名字。  如果你的入口文件在其他目录,比如`src/index.js`,那就改成`"${workspaceFolder}/src/index.js"`。
*   `"console": "integratedTerminal"`:  指定控制台输出到VSCode的集成终端。
*   `"internalConsoleOptions": "neverOpen"`:  不要打开内部控制台。
*   `"env": { "NODE_ENV": "development" }`:  设置环境变量。  `NODE_ENV`  设置为`development`,方便你区分开发环境和生产环境。
  1. 设置断点: 在你想要调试的代码行号旁边,单击一下,就可以设置断点。 VSCode会在行号旁边显示一个红点。

    VSCode如何调试Node.js应用程序 VSCode调试Node.js的完整配置流程
  2. 启动调试: 按下F5键,或者点击VSCode左侧的调试图标(像一个播放按钮),就可以启动调试。

  3. 调试: 程序会在断点处停下来。 你可以使用VSCode提供的调试工具栏,进行单步调试、跳过、继续、重启等操作。 你也可以在VSCode的调试控制台中查看变量的值。

如何调试带参数的Node.js程序?

如果你的Node.js程序需要接收命令行参数,你需要在launch.json文件中添加args配置。 例如:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program with Arguments",
      "program": "${workspaceFolder}/app.js",
      "args": ["--port", "3000", "--debug"],
      "console": "integratedTerminal",
      "internalConsoleOptions": "neverOpen",
      "env": {
        "NODE_ENV": "development"
      }
    }
  ]
}

"args": ["--port", "3000", "--debug"]: 指定传递给程序的命令行参数。 --port--debug 是参数名,3000--port 参数的值。 根据你的程序需要,修改参数列表。

如何调试使用nodemon的Node.js程序?

如果你使用nodemon来自动重启Node.js程序,你需要修改launch.json文件,使用"request": "attach"配置。 首先全局安装nodemon:

npm install -g nodemon

然后,修改launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "attach",
      "name": "Attach to Process",
      "processId": "${command:PickProcess}",
      "restart": true,
      "port": 9229
    }
  ]
}
*   `"request": "attach"`:  指定附加到正在运行的进程。
*   `"processId": "${command:PickProcess}"`:  指定要附加的进程ID。  VSCode会在启动调试时,弹出一个列表,让你选择要附加的Node.js进程。
*   `"restart": true`:  如果nodemon重启了程序,VSCode会自动重新附加。
* `"port": 9229`: nodemon 默认的调试端口。

启动调试前,先用nodemon启动你的Node.js程序:

nodemon --inspect app.js

然后,在VSCode中按下F5,选择要附加的Node.js进程。

如何调试TypeScript编写的Node.js程序?

调试TypeScript编写的Node.js程序,需要先将TypeScript代码编译成JavaScript代码。 你可以使用tsc命令或者构建工具(比如webpack、rollup)来编译TypeScript代码。

然后,在launch.json文件中,指定编译后的JavaScript文件作为入口文件。 例如:

CreateWise AI
CreateWise AI

为播客创作者设计的AI创作工具,AI自动去口癖、提交亮点和生成Show notes、标题等

下载
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program (TypeScript)",
      "program": "${workspaceFolder}/dist/app.js",
      "console": "integratedTerminal",
      "internalConsoleOptions": "neverOpen",
      "preLaunchTask": "tsc: build", // 编译 TypeScript
      "sourceMaps": true,
      "outFiles": [
          "${workspaceFolder}/dist/**/*.js"
      ]
    }
  ],
  "compounds": []
}
  • "program": "${workspaceFolder}/dist/app.js": 指定编译后的JavaScript文件作为入口文件。 dist 是编译输出目录。
  • "preLaunchTask": "tsc: build": 在启动调试之前,先执行一个任务。 tsc: build 是任务的名称。 你需要在.vscode/tasks.json文件中定义这个任务。
  • "sourceMaps": true: 启用 sourcemap,方便调试 TypeScript 源代码。
  • "outFiles": ["${workspaceFolder}/dist/**/*.js"]: 指定输出文件位置,用于 sourcemap 查找。

.vscode文件夹下创建tasks.json文件,并添加以下内容:

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "typescript",
            "tsconfig": "tsconfig.json",
            "problemMatcher": [
                "$tsc"
            ],
            "group": "build",
            "label": "tsc: build"
        }
    ]
}

确保你的tsconfig.json文件配置正确,指定了输出目录和sourcemap选项。 例如:

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "outDir": "./dist",
    "sourceMap": true,
    "strict": true,
    "esModuleInterop": true
  },
  "include": ["src/**/*"]
}
  • "outDir": "./dist": 指定输出目录为./dist
  • "sourceMap": true: 生成sourcemap文件。

调试时遇到"Cannot connect to runtime process"错误怎么办?

这个错误通常是由于以下原因导致的:

  1. 端口冲突: 调试端口被其他程序占用。 你可以尝试修改launch.json文件中的"port"配置,使用一个未被占用的端口。

  2. 防火墙阻止连接: 防火墙阻止了VSCode和Node.js进程之间的连接。 你需要配置防火墙,允许VSCode和Node.js进程之间的通信。

  3. Node.js版本过低: 某些版本的Node.js可能不支持调试功能。 你可以尝试升级Node.js到最新版本。

  4. --inspect参数未启用: 使用nodemon调试时,如果启动命令中没有添加--inspect参数,也会导致无法连接。

  5. 错误的launch.json配置: 仔细检查launch.json文件,确保配置正确。 特别是"program""args""processId"等配置。

如何使用VSCode调试器查看和修改变量值?

在调试过程中,VSCode提供了强大的变量查看和修改功能。

  1. Variables面板: 在VSCode的调试侧边栏,有一个"Variables"面板,显示当前作用域内的所有变量及其值。你可以展开对象和数组,查看它们的属性和元素。

  2. Watch面板: 在VSCode的调试侧边栏,还有一个"Watch"面板,你可以添加表达式,VSCode会实时计算表达式的值。 这对于查看复杂的表达式或者特定属性的值非常有用。

  3. 调试控制台: 在VSCode的调试控制台中,你可以输入表达式,VSCode会计算表达式的值并显示出来。 你也可以使用调试控制台来修改变量的值。 例如,你可以输入a = 10来将变量a的值修改为10。

  4. 悬停提示: 在调试过程中,你可以将鼠标悬停在变量上,VSCode会显示变量的值。

掌握这些技巧,你就能像使用魔法一样,轻松调试Node.js应用程序,快速定位和解决问题。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

49

2026.02.13

TypeScript全栈项目架构与接口规范设计
TypeScript全栈项目架构与接口规范设计

本专题面向全栈开发者,系统讲解基于 TypeScript 构建前后端统一技术栈的工程化实践。内容涵盖项目分层设计、接口协议规范、类型共享机制、错误码体系设计、接口自动化生成与文档维护方案。通过完整项目示例,帮助开发者构建结构清晰、类型安全、易维护的现代全栈应用架构。

196

2026.02.25

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

37

2026.03.13

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

457

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

549

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

337

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

82

2025.09.10

js正则表达式
js正则表达式

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

531

2023.06.20

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
go语言零基础开发内容管理系统
go语言零基础开发内容管理系统

共34课时 | 2.7万人学习

第二十三期_前端开发
第二十三期_前端开发

共98课时 | 8.4万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号