使用typescript、nodemon和外部项目调试vscode时出现问题

noj0wjuj  于 2022-12-18  发布在  Node.js
关注(0)|答案(1)|浏览(126)

感谢任何能够提供一些关于正在发生的事情的见解的人。VS代码调试总是很挑剔,但是我有一个我认为应该工作的情况,它没有。
问题:我可以在typescript中设置断点,并在我的两个项目(服务器和common-internal)中进行调试,但不能在第三个项目(common-external)中设置断点。为什么我不能调试common-external,如何设置才能调试?VS代码找不到绑定断点的源代码。
我创建了一个简单的回购协议来重现我看到的问题:https://github.com/snotmare/debug-issue
重现步骤:
1.克隆存储库
1.运行3个初始化任务(用于公共内部、公共外部和服务器)
1.运行2个监视任务(用于公共内部和公共外部)
1.运行启动服务器任务
1.通过附加到进程来运行调试器
1.在server/src/index.ts中设置断点(works)
1.在common-internal/src/utils.ts中设置断点(works)
1.在common-external/src/external-utils.ts中设置断点(不起作用)
项目设置:

  • 带有utils类的 typescript 项目(公共-内部)。
  • 导入公共内部和公共外部的NodeJS服务器项目。
  • 这两个项目都在同一个文件夹中,在同一根目录下有一个.vscode文件夹,用于任务和启动配置。

外部项目设置:

  • 带有utils类的 typescript 项目(公共-外部)。
  • 这是设置完全相同的共同内部,只是更名。
  • 它有自己的.vscode文件夹用于任务配置。

服务器项目依赖于如下两个常见项目:

"dependencies": {
        "common-internal": "file:../common-internal",
        "common-external": "file:../../common-external/common-external",
        "express": "4.18.2"
    },

我认为该问题与文件夹结构有关,该结构如下所示:

root folder
- test-app
- - .vscode
- - common-internal
- - server
- common-external
- - .vscode
- - common-external

文件夹结构需要这样,因为我希望test-app在一个git repo中,而common-external在一个单独的git repo中。
我调试服务器时,为什么不能在common-external中设置断点并调试呢?谢谢您的帮助!
vscode的Github问题:https://github.com/microsoft/vscode/issues/169033

kupeojn6

kupeojn61#

我偶然找到了这个问题的解决方案。我能够更新我的launchiderjson文件的outFiles来查找工作区文件夹之外的文件...

"outFiles": [
    "${workspaceFolder}/**/*.js",
    "${workspaceFolder}/../common-external/**/*.js",
    "!**/node_modules/**"
]

在我的真实的(较大)项目中,vs代码调试器仍然很挑剔。有时候它能找到源文件,有时候不能。有没有其他人遇到过调试器的性能问题?

相关问题