前言
我们之前介绍了如何使用VScode调试Nodejs程序,但是实际项目中,好多命令放到了npm scritps中。我们来看看调试npm scripts的方法有哪些?
run-script
我们一般在项目中经常看到npm run dev
这样的命令。其实npm run
是npm 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,
}
]
}
网友评论