NodeJs VSCode 断点调试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NodeJs VSCode 断点调试相关的知识,希望对你有一定的参考价值。

参考技术A 1.首先 你已经有一个.js 文件了,例如我的demo12.js
2.在工作区内打一些断点,如无异常的话应该是实心红点
3.点击 运行和调试 按钮

4.点击小齿轮按钮,修改配置文件
5.右键刚才那个js文件,复制出其相对路径,放在配置文件$workplaceFolder 的后面
6.点击开始按钮,进行调试

运行成功后,程序会定位到打断点的地方,并且,调试控制台可以看到输入结果,上面的一排按钮与其他调试工具类似,不赘述了

在实际开发当中,可以配置多分launch.json文件,以应对不同项目的调试
修改name值用于区分,并且,要修改program ,将对应项目的入口文件配置在这里即可

.env 使用 vscode 和 dotenv npm 调试断点

【中文标题】.env 使用 vscode 和 dotenv npm 调试断点【英文标题】:.env with debugging breakpoint using vscode and dotenv npm 【发布时间】:2019-07-01 05:01:00 【问题描述】:

我正在使用 nodejs 服务器端 api,使用 dotenv npm 包设置环境变量,并从 package.json 中的 npm 脚本运行代码,如下所示:

"scripts": 
   "local": "cross-env NODE_ENV=local nodemon ./bin/www"

我需要配置我的 .vscode/launch.json 文件。

目前看起来像:


    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": []

请指导我。谢谢, Gopal.R

dotenv npm package Visual Studio 代码 - Launch configurations

【问题讨论】:

【参考方案1】:

我对打字稿调试有同样的问题,我在这里找到了答案。需要指定runtimeArgsenvFile参数才能生效。

TypeScript 调试的launch.json 示例:


    "version": "0.2.0",
    "configurations": [
        
            "type": "pwa-node",
            "request": "launch",
            "name": "Launch Program",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "program": "$workspaceFolder/src/server.ts",
            "preLaunchTask": "tsc: build - tsconfig.json",
            "outFiles": [
                "$workspaceFolder/built/**/*.js"
            ],
            "runtimeArgs": [
                "--require=dotenv/config"
            ],
            "envFile": "$workspaceFolder/.env"
        
    ]

【讨论】:

【参考方案2】:

您可能希望将 .dotenv 环境变量设置为:

NODE_ENV=local

然后要在调试器中使用它,您需要将其添加到您的 launch.json 配置中,例如:

"runtimeArgs": [
    "--require=dotenv/config"
]

这里是上下文:


    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [ 
        
            "type": "node",
            "request": "launch",
            "name": "Launch | local with dotenv config",
            "program": "$workspaceFolder/bin/www/your_script.js",
            "runtimeArgs": [
                "--require=dotenv/config"
            ]
        
    ]

--require=dotenv/config 相当于在您的脚本中运行 require('dotenv').config() 或在您使用命令行时运行 node -r dotenv/config your_script.js

这里有一些可以在配置中放置环境变量的替代示例。


    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [ 
        
            "type": "node",
            "request": "launch",
            "name": "Launch | local using env file",
            "program": "$workspaceFolder/bin/www/your_script.js",
            "envFile": "$workspaceFolder/.env"
        ,
        
            "type": "node",
            "request": "launch",
            "name": "Launch | local without dotenv",
            "program": "$workspaceFolder/bin/www/your_script.js",
            "env" : 
                "NODE_ENV" : "local"
            
        
    ]

注意:此代码尚未经过测试...欢迎提供反馈。

【讨论】:

"envFile": "$workspaceFolder/.env" 为我工作。

以上是关于NodeJs VSCode 断点调试的主要内容,如果未能解决你的问题,请参考以下文章

VS Code nodejs远程调试:断点被忽略

如何使用vscode断点调试laravel

调试远程节点服务器时,VScode 调试器不会在断点处停止

vs2013 无法进行断点调试,怎么解决

使用 phpStudy + VSCODE 进行 PHP 断点调试

vscode断点调试