参考: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" } ] }
简化