Node Debug for VSCode
  # # Node Debug for VSCode
调试对于任何一门语言都是及其重要的。好的调试工具能让人更有效率的开发以及查错。Node没有chrome developer tool这样的Web可视化集成调试工具,但VSCode默认集成了TS、Git、Debug等实用工具,而且使用非常方便。VSCode的插件生态,也让VSCode变成前端开发必备的利器。以下介绍VSCode下的Node调试。
# # 基本用法
- 进入VScode界面,点击界面左边的第四个类似虫子的按钮,进入调试界面: 

 - 点击页面上方“没有配置”下拉菜单,选择“添加配置”。 

 - 选择Node.js环境。 

 - 选择完成之后,在项目的根目录中会生成一个.vscode的目录,这个目录中存放了各种各样的VScode编辑器的配置。VSCode根据你选择的环境,生成了对应的
配置文件lanuch.json。Node内容如下: 
    {
        "version": "0.2.0",
        "configurations": [
            {
                "type": "node",
                "request": "launch",
                "name": "Launch Program",
                "program": "${workspaceFolder}/node/http.js" // 调试路径入口,需要根据自己项目进行配置
            }
        ]
    }
    
 1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
- 设置断点,点击开始调试按钮(绿色三角形),就可以开始调试。
 
# # 调试参数配置
lanuch.json配置项较多,可查看官方文档 (opens new window) (opens new window)详细了解。VSCode也集成了一些常用的调试配置片段,有Node、Chrome、Electron、Gulp等。以下说明几个重要参数:
name: 给该配置项取个名字type: 通常有node、chrome等参数request: launch/attach- launch模式,由 vscode 来启动一个独立的具有 debug 模式的程序
 - attach模式,是连接已经启动的服务。比如已经在外面将项目启动,突然需要调试,不需要关掉已经启动的项目再去vscode中重新启动,只要以attach的模式启动,vscode可以连接到已经启动的服务。
 
program: debug node入口文件的绝对路径。只在launch模式有效runtimeExecutable: 执行器的绝对路径,默认是node。只在launch模式有效runtimeArgs: 执行器参数。只在launch模式有效
# # debug使用npm启动
以上Node调试方式有个问题,每次文件入口修改都需要改动lanuch.json配置文件。我们的方法是可以使用让npm script充当入口,让改动变成在package.json中。
以上需要改造两步:
- 修改lanuch.json配置成npm命令方式:
 
    {
        "version": "0.2.0",
        "configurations": [
            {
                "type": "node",
                "request": "launch",
                "name": "Launch via NPM",
                "runtimeExecutable": "npm", // npm 执行器。使用npm script方式作为入口
                "runtimeArgs": [
                    "run-script",
                    "start:debug"
                ],
                "port": 5858 // 调试的端口指定,attach时用到
            }
        ]
    }
    
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- 修改package.json的scripts配置
 
    {
        // 注意:需要配置上--inspect-brk=5858以attach到debugger
        "start:debug": "nodemon --inspect-brk=5858 node/http.js"
    }
    
 1
2
3
4
5
2
3
4
5
# # 参考文章
编辑  (opens new window)