node调试
关于node调试,Node.js 包含一个进程外的调试工具,可以通过V8检查器与内置的调试客户端访问。 要使用它,需要以 inspect 参数启动 Node.js,并带上需要调试的脚本的路径;然后会出现一个提示,表明已成功启动调试器,
$ node inspect myscript.js
< Debugger listening on ws://127.0.0.1:9229/80e7a814-7cd3-49fb-921a-2e02228cd5ba
< For help see https://nodejs.org/en/docs/inspector
< Debugger attached.
Break on start in myscript.js:1
> 1 (function (exports, require, module, __filename, __dirname) { global.x = 5;
2 setTimeout(() => {
3 console.log('world');
debug>
vscode
也是使用了node
的自带功能,不过不需要在命令来一步一步的调试,这个node
提供的调试有点和linux上的gdb调试器类似,使用起来并不是很顺手,所以使用ide还是不错的选择。
vscode调试
主要是vscode的配置,至于调试的一些使用功能【查看变量、断点等】,来ide里面一段倒腾就明白了,配置的话是一个launch.json
来配置的,如何打开这个文件,以下两种方法:
- 菜单栏的
调试
~打开设置
- 左侧栏有个虫子按钮,点击,上边就有个齿轮,可以打开
launch.json
可以使用node
来直接运行调试,也可以使用npm
来运行package.json
的scripts
脚本;
使用node
来调试,就像是运行 node index.js
一样:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceRoot}\\index.js" //linux mac是:"${workspaceRoot}/index.js"
}
]
}
使用npm
来调试,就像是运行 npm run dev
一样,需要注意你的package.json
的scripts
脚本:
//package.json
{
"name": "debug",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "node index.js"
},
"author": "cwj",
"license": "ISC"
}
//launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch via NPM",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script", "dev"
],
"port": 9229
}
]
}
有时候node使用了某个端口,停止后再次启动时经常遇到端口被占用
//lsof -i :port 查看端口被占用进程的pid等信息
lsof -i :8888
//kill -9 pid 根据pid来删除使用node需要的端口的进程
kill -9 23456
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。