(未绑定断点)如何在vscode for nx项目中调试nestjs项目

Sur*_*iya 7 nestjs nrwl-nx

我正在尝试在 vs code 中调试由 NX 项目创建的 Nestjs 应用程序。我添加了 Launch.json 文件,如下所示。我有两个项目,第一个是 Angular,第二个是 NestJS,我想调试我的 NestJS 项目。

{  
"version": "0.2.0",
"configurations": [
{
  "type": "node",
  "request": "attach",
  "name": "Attach by Process ID",
  "processId": "${command:PickProcess}",
  "skipFiles": ["<node_internals>/**"]
},
{
  "type": "node",
  "request": "launch",
  "name": "Launch Program",
  "skipFiles": ["<node_internals>/**"],
  "program": "${workspaceFolder}/serve",
  "outFiles": ["${workspaceFolder}/**/*.js"]
}
Run Code Online (Sandbox Code Playgroud)

] }

每当我尝试添加断点时,它们都会变成灰色,并显示它们是未绑定的断点,即使指针转到断点后仍然不会在其处暂停。请帮助我解决任何问题。

小智 8

对我有用的是运行应用程序,nx serve my-nest-project然后使用以下 launch.json 启动 VS 代码调试器

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Attach to nestjs",
            "request": "attach",
            "cwd": "${workspaceFolder}/app/my-nest-project",
            "type": "node",
            "port": 9229,
        }
    ]
}

Run Code Online (Sandbox Code Playgroud)

对我来说最重要的部分是,cwd因为我有一个 monorepo 工作区,所以需要cwd指向 Nestjs 应用程序的根目录而不是工作区根目录。

如果您需要对调试端口有更多的控制,您可以这样设置nx serve my-nest-project --port=9223


小智 8

我找到了一种更好的方法,不需要我事先手动启动应用程序。

我的launch.json文件:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch my-nest-project",
            "request": "launch",
            "type": "node",
            "runtimeExecutable": "npx",
            "runtimeArgs": [
                "nx",
                "serve",
                "my-nest-project"
            ],
            "console": "integratedTerminal",
            "cwd": "${workspaceFolder}/app/my-nest-project"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

这里更改my-nest-project为您的项目名称。


Ref*_*Jan 0

就我而言,不起作用的断点位于控制器中。问题在于该控制器的模块不是imports实际运行的主模块的一部分。