• 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"
            }
        ]
    }
    简化
  • 相关阅读:
    超赞!推荐一个专注于Java后端源码分析的Github项目!
    SpringApplication对象是如何构建的? SpringBoot源码(八)
    Java是如何实现自己的SPI机制的? JDK源码(一)
    SpringBoot的启动流程是怎样的?SpringBoot源码(七)
    SpringBoot内置的各种Starter是怎样构建的?--SpringBoot源码(六)
    外部配置属性值是如何被绑定到XxxProperties类属性上的?--SpringBoot源码(五)
    SpringBoot是如何实现自动配置的?--SpringBoot源码(四)
    设计模式目录
    桥接模式
    常见的HTTP状态码
  • 原文地址:https://www.cnblogs.com/hopesun/p/12346474.html
Copyright © 2020-2023  润新知