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 ode.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"
        }
    ]
}
简化
原文地址:https://www.cnblogs.com/hopesun/p/12346474.html