vscode 调试 node.js

项目根目录下新建.vscode文件夹,同时该文件夹下新建launch.json文件
{
“configurations”: [
{
“type”: “node”,
“request”: “launch”,
“name”: “nodemon”,
“runtimeExecutable”: “nodemon”,
“program”: “${workspaceFolder}/app/starter.js”,
“restart”: true,
“console”: “integratedTerminal”,
“internalConsoleOptions”: “neverOpen”
}
]
}
1.需要在项目跟目录下,不然点击启动调试的时候识别不出来该项目中有这个调试任务



2.program启动程序配置项,${workspaceFolder}为当前工作面板下,注意改项目最好是根目录直接在vscode的工作面板中作为一个项目,而不是一个嵌套在一个项目下的子项目。



3.${workspaceFolder}/app/starter.js中app/starter.js是这个项目下app目录下的starter.js文件作为启动文件。这个文件如果配置不对,会出现调试工具栏启动成功后一闪而过便消失,例如像测试接口的时候怎么调用接口都进入不了调试。



(1)如何正确的找到配置启动文件:去jsonpack.json文件中main字段中找,例如我的项目中main字段



   "main": "app/starter.js",所以我们的launch.json中就应该配置成"program": "${workspaceFolder}/app/starter.js"。一般express创建的项目启动文件都是项目跟目录下app.js,我们就要配置成"program": "${workspaceFolder}/app.js"。


(2)配置成功后,调试状态栏就会一直固定在vscode界面的顶部,哪怕没有接口调试的访问,也会一直在。



(3)注意调试模式下需要把正式的启动后端的cmd关闭,不然会出现已经启动了一个端口,端口冲突。

1.打开左边,调试小虫子
2.选择配置/选择环境Node.js
3.选择完成之后,生成一个.vscode文件夹,文件夹下有个launch.json文件。将【program】字段的值修改为自己程序的入口文件,开始调试时会从这个入口启动程序
4.修改完成后,点击绿色三角按钮,打断点,开始调试程序。
https://segmentfault.com/a/1190000012081882



1、首先通过node-inspect插件可以debug nodejs ,先起nodejs服务,再启用node-inpector服务



安装调试器 npm install -g node-inspector
监听调试服务 node-inspector -p 8000
启动调试程序 node –debug-brk server.js
在localhost:8080?port=5858页面就能找到资源debug里



2、vscode,也是我喜欢的一种方式



https://code.visualstudio.com/docs/nodejs/nodejs-tutorial
https://code.visualstudio.com/Docs/editor/debugging



由 Node.js 基础库,使用检查器协议支持的 CLI 调试器。
和 Node 绑定在一起的版本,并且可以使用 node inspect myscript.js。
最新的版本同样可以单独通过(例如 npm install -g node-inspect)方式安装,并使用 node-inspect myscript.js。



https://nodejs.org/zh-cn/docs/guides/debugging-getting-started/



一共有两种打开调试工具的方法,第一种是在 Chrome 浏览器的地址栏,键入 chrome://inspect或者about:inspect,回车后就可以看到下面的界面。
在 Target 部分,点击 inspect 链接,就能进入调试工具了。



第二种进入调试工具的方法,是在 http://127.0.0.1:3000 的窗口打开”开发者工具”,顶部左上角有一个 Node 的绿色标志,点击就可以进入。



调试非服务脚本
Web 服务脚本会一直在后台运行,但是大部分脚本只是处理某个任务,运行完就会终止。这时,你可能根本没有时间打开调试工具。等你打开了,脚本早就结束运行了。这时怎么调试呢?



$ node –inspect=9229 -e “setTimeout(function() { console.log(‘yes’); }, 30000)”
上面代码中,–inspect=9229指定调试端口为 9229,这是调试工具默认的通信端口。-e参数指定一个字符串,作为代码运行。



http://www.ruanyifeng.com/blog/2018/03/node-debugger.html


Category node