前言
最近在用Node、TS、Express开发一个后台接口项目,后台项目的调试比前端浏览器调试稍显复杂些。此次使用VSCode开发项目,VSCode自带调试功能。但是,调试Node、TS项目,问题都比较少。如何配合Nodemon希望一边有热加载效果,一边自动保持调试功能,还是有不少坑点。
接下来,我将配置流程记录一下。
配置Nodemon调试模式
注意:保证你已经下包了ts-node和typescript,否则会报错ts-node不存在。
{
"name": "debug-typescript-node-nodemon",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"dev:debug": "nodemon --exec "node --require ts-node/register --inspect src/app.ts""
},
"author": "",
"license": "ISC",
"devDependencies": {
"nodemon": "^2.0.12",
"ts-node": "^9.1.1",
"typescript": "^4.4.2"
}
}
上述第7行代码中,我们启用了--inspect参数,并指定了使用ts-node运行ts文件。
当使用-inspect标志时,调试器将在默认情况下监听端口9229。
此时,运行npm run dev:debug ,你会在终端中看到如下一行的日志:
这行日志,代表Nodemon在9299端口开启了调试模式。现在要做的,用一个调试终端去连接这个端口即可。VSCode+Node项目中调试终端有两种:
- VSCode自带的调试面板
- Chrome作为调试终端
VSCode自带调试终端
在根目录创建.vscode/launch.json,配置如下,注意port要指定为9299
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Nodemon: Attach Express.js + TypeScript",
"type": "node",
"request": "attach",
"port": 9229, // 💥💥与上方提示的端口号保持一致
"restart": true
}
]
}
使用步骤:
npm run dev:debug启动项目- 运行调试按钮:
此时,修改修改代码保存后,可以在新代码处,打断点。
大功告成~
Chrome作为调试终端
挖个坑,有空来写