nodejs于vscode断点调试的可用配置

使用vscdoe编写nodejs是很方便的,正常使用情景下(windows)按F5便可运行调试程序了。

想要使用新特性但是实际生产环境下的node版本较低,算是比较常见的情况。这是为了满足此种情况需要使用上babel进行构建兼容代码。而在vscode下中想调试程序又该如何操作呢?

思路

首先得使用babel把代码构建出来,然后在vscode中运行它。

具体配置如下:

  1. .vscode目录下添加任务

    // # .vscode/tasks.json
    {
        "version": "2.0.0",
        "tasks": [
            {
                "label": "build",
                "type": "shell",
                "command": "babel",
                "args": [
                    "src",
                    "-d",
                    "lib/src",
                    "-s"
                ]
            }
        ]
    }
  2. .vscode目录下添加调试配置

    // # .vscode/launch.json
    {
        "version": "0.2.0",
        "configurations": [
            {
                "type": "node",
                "request": "launch",
                "name": "Launch Babel",
                "program": "${workspaceRoot}/lib/src/index.js",
                "cwd": "${workspaceRoot}",
                "preLaunchTask": "build",
                "outFiles": [
                    "${workspaceRoot}/lib/src/**.js"
                ]
            }
        ]
    }
  3. 按下F5运行调试

断点调试"src/index.js",实则是运行"lib/src/index.js"并经过source-map得知原文件位置进行调试。

除了上面说的外,还有一些方法"babel-node运行调试"和"在入口处加上babel-register并直接运行"等等各类思路,这里就不一一说明。

关于babel的一些说明

目前babel已经提供babel-preset-env工具帮助我们很好地解决版本兼容的问题。

比如node端的兼容,只需简单设置.babelrc

# .babelrc
{
    "presets": [
        ["env", {
            "target": {
                "node": "current"
            }
        }]
    ]
}

还有web端像autoprefixer那样的设置版本兼容:

# .babelrc
{
    "presets": [
        ["env", {
            "target": {
                "browsers": [
                    "> 5%"
                ]
            },
            "useBuiltIns": true
        }]
    ]
}

# src/bootstrap.js
import "babel-polyfill"

送上例子仓库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值