Webstorm- Nodemon + Typescript + Docker - 调试器已连接但断点不起作用

Posted

技术标签:

【中文标题】Webstorm- Nodemon + Typescript + Docker - 调试器已连接但断点不起作用【英文标题】:Webstorm- Nodemon + Typescript + Docker - debugger connected but breakpoints not working 【发布时间】:2021-10-10 15:22:58 【问题描述】:

我有一个用打字稿编写的节点项目。该进程使用 Nodemon 在 docker 容器中运行。节点(通过 nodemon)使用 --inspect 选项在容器内运行。 当我尝试将 Webstorm 连接到进程时,它会连接但没有遇到断点。

这个命令用在package.json启动:tsc-watch --incremental --onFirstSuccess "sh -c 'tscpaths -p tsconfig.json -s ./src -o ./dist/src && nodemon -L --inspect=0.0.0.0:9229 dist/src/main.js --config nodemon-debug.json'" --onSuccess "sh -c 'tscpaths -p tsconfig.json -s ./src -o ./dist/src && touch ./dist/src/main.js

说明: 使用 tsc-watch 来观察代码的变化。 首次构建成功后,运行tscpaths 替换路径快捷方式,然后使用inspect 选项(传递给节点)运行nodemon。 每次构建成功后运行tscpaths并触摸main.js文件以触发nodemon重新启动进程。

nodemon 配置(仅查看main.js 每次构建后由tsc-watch 触及的文件):


  "watch": [
    "./dist/src/main.js"
  ],
  "ext": "js"

docker 容器的 9229 端口映射到 docker-compose.yml 中主机上的端口 9666,在 Webstorm 中我使用“附加到 Node.js/Chrome”配置附加到 localhost 端口 9666。

tsconfig.json 文件包括 "sourceMap": true

每次代码更改时自动构建 + 重新启动的整个过程都有效。 调试器附加在 Webstorm 中(调试器选项卡显示“已连接到 localhost:9666 - dist/src/main.js”)。 问题是没有遇到断点。它们没有用“V”标记,并且在执行过程中没有被击中。

有什么想法吗?

在 Windows 10 上使用 Webstorm 2021.1。

【问题讨论】:

【参考方案1】:

你需要在调试器中设置一些东西。

看一下配置,有一个叫做本地文件的远程URL(可选)。您需要为您的文件/目录指定 RemoteURL,以便它可以访问调试器。

sample config

【讨论】:

以上是关于Webstorm- Nodemon + Typescript + Docker - 调试器已连接但断点不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用 nodemon 或 supervisor 仅重新加载文件而不重新启动所有服务器 - WebStorm

你如何在 Webstorm 中设置文件观察器来重启 Node.js?

webstorm :file types文件类型关联错误 导致文件打开方式不对 修改文件关联设置/文件类型无法正确识别

nodemon 无法使用 express v4 启动 nodejs 应用程序

Webstorm 中的 ESLint 无法识别 React 类型

Node.js 调试流程