Мне удалось исправить это, изменив значение timeout
в launch.json
.
{
"type": "node",
"request": "launch",
"name": "Launch in Docker",
"preLaunchTask": "tsc-watch",
"protocol": "auto",
"runtimeExecutable": "npm",
"runtimeArgs": [ "run", "docker-debug" ],
"port": 5858,
"restart": true,
"timeout": 60000,
"localRoot": "${workspaceFolder}/dist",
"remoteRoot": "/server/dist",
"outFiles": [
"${workspaceFolder}/dist/**/*"
],
"trace": true,
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}
timeout
относится к Retry for this number of milliseconds to connect to Node.js. Default is 10000 ms.
. Тем не менее, не похоже, что он работает, как ожидалось. Похоже, что вместо этого он ждет еще долго, чтобы снова проверить, подключен ли он к отладчику.
Так что "timeout": "60000"
означало, что если отладчик не может сразу подключиться, он будет ждать целую минуту перед повторной попыткой.
Как только я изменил значение на 3000
, и точки останова начали срабатывать гораздо раньше. Значение должно быть достаточно длинным для запуска вашего контейнера и задачи tsc-watch
, в противном случае вы получите ошибку, которую отладчик не смог подключиться.
Этого можно избежать, если запустить контейнер перед запуском отладчика.
Я до сих пор не могу объяснить, почему он говорил Debugger attached.
, хотя отладчик кода VS на самом деле не был или, по крайней мере, он не знал, что он был прикреплен.