M.Y*_*.Y. 1 node.js nodemon nestjs vscode-debugger
我在 vscode 中有一个 Nestjs 项目,在调试模式下代码中的更改不会生效。然而,断点正常命中,但例如看不到更改的变量值 - 即它们保持为先前的值(更改之前的值)。
我的 launch.json 如下:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug Nest Framework",
"runtimeExecutable": "nodemon",
"runtimeArgs": ["--nolazy", "-r", "ts-node/register", "--config", "nodemon-debug.json"],
"program": "${workspaceFolder}/src/main.ts",
"autoAttachChildProcesses": true,
"restart": true
}
]
}
Run Code Online (Sandbox Code Playgroud)
并且nodemon-debug.json文件具有以下内容:
{
"watch": ["src"],
"ext": "ts, js",
"ignore": ["src/**/*.spec.ts"]
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是,当我更改代码时,nodemon 确实注册了它并重新启动应用程序,从控制台可以看到:
C:\...\AppData\Roaming\npm\nodemon.cmd --nolazy -r ts-node/register --config nodemon-debug.json .\dist\main.js
[nodemon] 2.0.18
c:\...\AppData\Roaming\npm\node_modules\nodemon\lib\utils\log.js:34
[nodemon] to restart at any time, enter `rs`
c:\...\AppData\Roaming\npm\node_modules\nodemon\lib\utils\log.js:34
[nodemon] watching path(s): src\**\*
c:\...\AppData\Roaming\npm\node_modules\nodemon\lib\utils\log.js:34
[nodemon] watching extensions: ts,js
c:\...\AppData\Roaming\npm\node_modules\nodemon\lib\utils\log.js:34
[nodemon] starting `node --nolazy -r ts-node/register .\dist\main.js`
c:\...\AppData\Roaming\npm\node_modules\nodemon\lib\utils\log.js:34
[WEB] http://localhost:3000
Run Code Online (Sandbox Code Playgroud)
谁能弄清楚为什么更改没有生效?
我终于从这个/sf/answers/4432759481/找到了解决方案
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug Nest Framework",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run",
"start:debug",
"--",
"--inspect-brk"
],
"autoAttachChildProcesses": true,
"restart": true,
"sourceMaps": true,
"stopOnEntry": false,
"console": "integratedTerminal",
}
]
}
Run Code Online (Sandbox Code Playgroud)
这个解决方案确实非常适合我,并且不需要 vscode 的设置:调试 > Javascript:自动将过滤器附加到“始终”。另外 console:integratedTerminal -选项很方便,因为调试信息直接进入同一个控制台。另外,现在不需要nodemon-debug.json。
Package.json 文件中的脚本命令现在是:
"scripts": {
...
"start:debug": "nest start --debug --watch",
...
}
Run Code Online (Sandbox Code Playgroud)
看来这里仍然需要“--watch”才能使代码更改生效。
| 归档时间: |
|
| 查看次数: |
3403 次 |
| 最近记录: |