Nodejs 调试 npm scripts

2019-10-25  本文已影响0人  黑曼巴yk

前言

我们之前介绍了如何使用VScode调试Nodejs程序,但是实际项目中,好多命令放到了npm scritps中。我们来看看调试npm scripts的方法有哪些?

run-script

我们一般在项目中经常看到npm run dev这样的命令。其实npm runnpm run-script的别名。

调试npm scripts

首先在package.json中添加npm scripts

{
...
"scripts": {
   "debug": "node --inspect-brk=5858 index.js"
  },
...
}

后面的--inspect-brk=5858,必须存在,需要开启调试模式,其中5858是任意端口号,可以任意指定

修改vscode调试配置

打开.vscode/launch.json
增加以下3个配置项:runtimeExecutable,runtimeArgs,port
runtimeExecutable: 要使用的运行时。应为绝对路径或在 PATH 上可用的运行时名称。默认值为 "node"。
runtimeArgs: 传递给运行时可执行文件的可选参数。

{
    ...
    "configurations": [
        {
            ...
            "runtimeExecutable": "npm",
            "runtimeArgs": [
                "run-script",
                "debug"
            ],
            "port": 5858
        }
    ]
}

调试非node命令

问题

比如我们调试webpack源码

{
  ...
  "scripts": {
    "build": "webpack"
  },
  ...
}

按照上面的方法是不行的

{
  ...
  "scripts": {
    "debug": "webpack --inspect-brk=5858"
  },
  ...
}

转换成Node应用

{
  ...
  "scripts": {
    "debug": "node --inspect-brk=5858 ./node_modules/.bin/webpack"
  },
  ...
}

我们需要将npm script中的命令改成node调用

stopOnEntry

我们还可以设置 .vscode/launch.json 的 configurations.stopOnEntry属性,
启动调试后会,会自动将断点停在代码的第一行

{
    ...
    "configurations": [
        {
            ...
            "stopOnEntry": true,
        }
    ]
}

refer

https://www.jianshu.com/p/8b034954abc9

上一篇 下一篇

猜你喜欢

热点阅读