# vscode 调试node

# Auto Attach

Auto Attach 有 三种调试模式 ,可以按住 command ,调出用户设置并搜索debug.javascript.autoAttachFilter 修改调试模式

  • smart 默认
  • always
  • onlyWithFlag

# 第一种 smart

默认使用这种模式。

直接在需要调试的代码右侧打上断点, 打开控制台执行 node test.js。就会进入调试模式 smart

# 第二种 always

打开控制台就会打开调试

# 第三种 onlyWithFlag

调试的时候需要加上 --inspect参数,比如 node test.js --inspect,才能进入调试模式

# 常见方案的配置

  • Launch Program: 在调试模式下启动Node.js程序
  • Launch via npm: 通过npm debug脚本启动Node.js程序。如果在package.json中定义了npm debug脚本,则可以直接在启动配置中使用它。
  • Attach: 附加到本地运行的Node.js程序的调试端口.确保已在调试模式下启动要调试的Node.js程序,并且所使用的调试端口与代码段中指定的端口相同。

# 启动对“ npm”和其他工具的配置支持

如果package.json 文件指定了 "debug": "node test.js",则不需要再launch.json中指定program属性。举例如下

//package.json

"scripts": {
    "debug": "node myProgram.js"
},

// launch.json则如下
{
  "name": "Launch via npm",
  "type": "node",
  "request": "launch",
  "cwd": "${workspaceFolder}",
  "runtimeExecutable": "npm",
  "runtimeArgs": ["run-script", "debug"]
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 支持从外部文件加载环境变量

launch.json配置如下

"envFile": "${workspaceFolder}/.env",
"env": { "USER": "john doe" }
1
2

.env如下

USER=doe
PASSWORD=abc123

# a comment

# an empty value:
empty=

# new lines expanded in quoted strings:
lines="foo\nbar"

1
2
3
4
5
6
7
8
9
10
11

# 文档

调试配置属性 (opens new window)