Я успешно настроил отладчик в VSCode для узла в Docker:
(это работает)
{
"type": "node",
"request": "attach",
"name": "Attach to Docker",
"localRoot": "${workspaceFolder}/src/",
"remoteRoot": "/app/src/",
"restart": true,
"sourceMaps": true,
"showAsyncStacks": true,
"port": 9229
}
И я могу использовать Расширение удаленных контейнеров VSCode во время отладки проблем нет. Важная часть моего файла docker-compose находится здесь:
(это работает)
web:
build: .
command: npm run dev
volumes:
- ./tsconfig.json:/app/tsconfig.json
- ./src:/app/src
- ts-cache:/root/cache
ports:
# server api
- '5000:5000'
# node debugger
- '9229:9229'
И скрипт узла:
(это работает)
ts-node-dev \
--cache-directory /root/cache \
--respawn \
--transpileOnly \
--inspect=0.0.0.0:9229 \
-- \
src/index.ts
Проблема!
Я не могу добавить точки останова к тестам Jest. Вот мой скрипт для запуска Jest:
exec node --nolazy \
--inspect=0.0.0.0:9239 \
./node_modules/.bin/jest \
--runInBand \
--clearMocks \
--restoreMocks \
--verbose=false \
--watchAll \
"$@"
Я запускаю один сервис в docker-compose с docker-compose run --rm -p 9239:9239 web ./test.sh
. И я пробую этот скрипт запуска VSCode (который очень похож на описанный выше):
{
"type": "node",
"request": "attach",
"name": "Attach to Docker Test",
"port": 9239,
"restart": true,
"localRoot": "${workspaceFolder}/src/",
"remoteRoot": "/app/src/"
}
Обратите внимание, что отладчик успешно подключается, но точки останова не проверяются и не ломаются. При наведении курсора на точки останова редактор говорит:
«Точка останова игнорируется, поскольку сгенерированный код не найден (проблема с картой источника?).»
Я специально удалил sourceMaps, а затем попыталсяустановив для sourceMaps значение false, но, похоже, это не решает проблему.
Любая помощь приветствуется!