VSCode 有关JS、TS的调试
参考:https://www.cnblogs.com/it-tsz/p/9022456.html
nestjs 参考:https://github.com/juliandavidmr/awesome-nestjs
vscode 原生支持nodejs的调试,点击Debug图标 进入,齿轮图标打开调试配置: launch.json
launch.json 文件的配置项如下:可以建多个,最后显示于下拉列表,供选择使用。
name 给这个调试实例取一个名字,
type :debugger 类型 ,Node,Python ,"cppdbg" 。不同语言,使用不同调试器,JS/TS 使用 Node 。
request :两种调试模式,可以为 launch(启动)或attach(附加)。指定开始调试的模式:
launch
:在中指定的文件上启动调试器program
attach
:将调试器附加到已经运行的进程。有关示例,请参阅远程调试。
preLaunchTask 开始调试之前,执行一个任务
postDebugTask 调试结束后,执行一个任务
program :// 将要进行调试的程序的路径
args :// 程序调试时传递给程序的命令行参数,一个数组 [ ] ;
runtimeExecutable : "npm",
runtimeArgs : ["run-script", "debug" ]
env :环境变量,
cwd :// 调试程序时的工作目录,一般为 ${workspaceRoot} 即代码所在目录
指定调试器的当前工作目录,它是代码中使用的任何相对路径的基础文件夹。如果省略,默认为${workspaceFolder}
(在VS代码中打开的文件夹)。
作为一个例子,说${workspaceFolder}
包含一个py_code
文件夹包含app.py
,和一个data
文件夹包含salaries.csv
。如果启动调试器py_code/app.py
,则数据文件的相对路径根据以下值而变化cwd
:
CWD | 数据文件的相对路径 |
---|---|
省略或 ${workspaceFolder} |
data/salaries.csv |
${workspaceFolder}/py_code ) |
../data/salaries.csv |
${workspaceFolder}/data |
salaries.csv |
port :调试端口 ,比如:3000
console :使用哪种console,比如 "integratedTerminal"。指定如何显示程序输出。
值 | 显示输出的地方 |
---|---|
"none" |
VS代码 调试控制台 |
"integratedTerminal" (默认) |
VS代码集成终端 |
"externalTerminal" |
独立控制台窗口 |
externalConsole: // 调试时是否显示控制台窗口,一般设置为true显示控制台。
protocol: "inspector",
stopOnEntry 当程序执行,马上break掉
internalConsoleOptions: "neverOpen"
debugServer: for debug extension authors only
===============================
launch.json的配置, 调试 Nestjs :
C:\XX\node.exe --nolazy -r ts-node/register --inspect-brk=29685 C:\XXhpcorp项目/src/main.ts
{"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug Nest Framework",
"args": ["${workspaceFolder}/src/main.ts"],
"runtimeArgs": ["--nolazy", "-r", "ts-node/register"],
"sourceMaps": true,
"cwd": "${workspaceFolder}",
"protocol": "inspector",
"console": "integratedTerminal"
}
]
}
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Nest 应用",
"runtimeArgs": [
"--nolazy",
"-r",
"ts-node/register",
],
"args": [
"${workspaceFolder}/src/main.ts"
],
"env": {
"DEBUG": "yuedun:*,-not_this",
"NODE_ENV": "development"
},
"sourceMaps": true,
"cwd": "${workspaceFolder}",
"protocol": "inspector",
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}
]
}
简化