參考: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:在中指定的文件上啟動調試器programattach:將調試器附加到已經運行的進程。有關示例,請參閱遠程調試。
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" } ] }
簡化
