首页 > 解决方案 > Webstorm- Nodemon + Typescript + Docker - 调试器已连接但断点不起作用

问题描述

我有一个用打字稿编写的节点项目。该进程使用 Nodemon 在 docker 容器中运行。--inspect节点(通过 nodemon)在带有选项的容器内运行。当我尝试将 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运行 nodemon 。inspect每次构建成功后运行tscpaths并触摸main.js文件以触发 nodemon 重新启动进程。

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

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

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

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

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

有任何想法吗?

在 Windows 10 上使用 Webstorm 2021.1。

标签: node.jstypescriptdockerdebuggingnodemon

解决方案


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

看一下配置,有一个叫做Remote URLs of local files(optional)的东西。您需要为您的文件/目录指定 RemoteURL,以便它可以访问调试器。

示例配置


推荐阅读