使用 TypeScript 的 Node.js,在 VSCode 和 Nodemon 内进行调试📦依赖项和配置💻编写我们的服务器和一些路由📊将调试配置附加到我们的项目🌐额外:它也适用于 Google Chrome DevTools☕️我想要这一切以及更多!

2025-06-10

使用 TypeScript 的 Node.js,在 VSCode 和 Nodemon 内进行调试

📦依赖项和配置

💻 编写我们的服务器和一些路由

📊 将 Debug 配置附加到我们的项目

🌐 附加功能:它也适用于 Google Chrome DevTools

☕️我想要这一切,甚至更多!

设置 Node.js 和 TypeScript 非常简单。我们的日常工作有时需要大量调试,并且还需要重新加载服务器。

让我们来看看如何在 VSCode 中使用 TypeScript + Nodemon + Debug 设置 Node.js(另外,您还可以在 Chrome DevTools 中对其进行调试)。

少说话,多写代码!🤓

📦依赖项和配置



$ mkdir devto-node-typescript
$ cd $_


Enter fullscreen mode Exit fullscreen mode

添加我们的依赖项:



$ yarn init -y
$ yarn add @types/express@^4.16.1 express@^4.16.4 nodemon@^1.18.10 ts-node@^8.0.3 typescript@^3.3.4000


Enter fullscreen mode Exit fullscreen mode

这是我们的依赖项列表:

  • @types/express@^4.16.1
  • express@^4.16.4
  • nodemon@^1.18.10
  • ts-node@^8.0.3
  • typescript@^3.3.4000

现在,让我们创建nodemon.json文件:



$ touch nodemon.json
$ vim $_


Enter fullscreen mode Exit fullscreen mode

并粘贴以下内容:



{
  "restartable": "rs",
  "ignore": [".git", "node_modules/**/node_modules"],
  "verbose": true,
  "execMap": { // [A]
    "ts": "node --require ts-node/register"
  },
  "watch": ["src/"],
  "env": {
    "NODE_ENV": "development"
  },
  "ext": "js,json,ts"
}


Enter fullscreen mode Exit fullscreen mode
  • // [A]:这里我们对 nodemon 说:“嘿 nodemon,如果我们使用“.ts”文件运行“nodemon”,请使用此行来执行该文件”。因此,现在我们可以这样做nodemon server.ts,它将用于ts-node编译我们的文件。

要了解有关 Nodemon 配置的更多信息,您可以查看其存储库中的示例

现在,让我们创建tsconfig.json文件:



$ touch tsconfig.json
$ vim $_


Enter fullscreen mode Exit fullscreen mode

并使用:



{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "outDir": "./dist",

    "strict": true,

    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,

    "esModuleInterop": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "**/*.test.ts"]
}


Enter fullscreen mode Exit fullscreen mode

与默认配置没有太大区别(例如当您运行tsc --init

我们快完成了,让我们创建一个npm 脚本来启动我们未来的服务器:



// ...

"scripts": {
  "dev": "nodemon src/entry.ts"
}

// ...


Enter fullscreen mode Exit fullscreen mode

现在,是时候创建我们的服务器了。

💻 编写我们的服务器和一些路由

正如我们在 nodemon 和 npm 脚本配置中看到的,我们需要创建一个名为的文件夹src和一个名为的文件entry.ts



$ mkdir src
$ cd $_
$ touch entry.ts
$ vim $_


Enter fullscreen mode Exit fullscreen mode

让我们写下以下内容:



import express from 'express';

const server = express();

server.use('/_healthcheck', (_req, res) => {
  res.status(200).json({ uptime: process.uptime() });
});

server.listen(4004, () => { console.log('Running at localhost:4004') })


Enter fullscreen mode Exit fullscreen mode

现在我们可以运行:



$ yarn dev


Enter fullscreen mode Exit fullscreen mode

看看我们的 Node.js 与 TypeScript + Nodemon 服务器正在运行:

太棒了!🎉

但是等等...还缺少一个重要部分,我该如何调试这个东西?😱

📊 将 Debug 配置附加到我们的项目

使用nodemon时,我们只需传递一个--inspect标志,即可使 Node 进程可调试。为此,我们创建一个新的 npm 脚本:



// ...

"scripts": {
  // ...
  "dev:debug": "nodemon --inspect src/entry.ts"
}

// ...


Enter fullscreen mode Exit fullscreen mode

如果我们运行:



$ yarn dev:debug


Enter fullscreen mode Exit fullscreen mode

我们可以在日志中看到调试选项:

太棒了!让我们创建 VSCode 配置:



$ mkdir .vscode
$ cd $_
$ touch launch.json
$ vim $_


Enter fullscreen mode Exit fullscreen mode

并粘贴以下内容:



{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "attach",
      "name": "Node: Nodemon",
      "processId": "${command:PickProcess}",
      "restart": true,
      "protocol": "inspector"
    }
  ]
}


Enter fullscreen mode Exit fullscreen mode

此配置基于Microsoft Recipes for VSCode 之一。

让我们打开 VSCode 编辑器并进入“调试”面板:

随着我们的yarn dev:debug跑步,让我们按下上面截图中显示的绿色箭头。

首先,我们需要选择指向我们服务器的进程:

选择它之后,我们可以看到一个浮动的调试面板和一些 UI 变化:

现在,您可以在代码中添加断点,并在编辑器中使用 nodemon 重新加载服务器:

愉快的体验!❤️🎉😎

🌐 附加功能:它也适用于 Google Chrome DevTools

是的。我们可以采取以下步骤:

  • 导航至chrome://inspect

  • 单击指向您的服务器的“远程目标”inspect部分,然后使用 Chrome DevTools 调试您的服务器:

注意:我尝试使用“打开 Node 专用 DevTools”选项,但效果不佳 :( 如果您知道如何使其工作,请与我们分享!

☕️我想要这一切,甚至更多!

测试呢?文件夹结构怎么样?有默认项目吗?

不用多说!就我个人而言,我有一个不带任何偏见的小型默认项目:

https://github.com/oieduardorabelo/node-typescript

你会发现:

  • Node.js + TypeScript
  • 笑话
  • Nodemon

欢迎随意分叉、贡献和使用!

祝你编程愉快!🙌

鏂囩珷鏉ユ簮锛�https://dev.to/oieduardorabelo/nodejs-with-typescript-debug-inside-vscode-and-nodemon-23o7
PREV
优秀文档的四个层次
NEXT
我正在创建一个新的 ✨JavaScript✨ 框架