我关注了this教程并成功地我能够使用例如本教程中给出的方式运行 Docker 容器
docker run -it \
-v ${PWD}:/usr/src/app \
-v /usr/src/app/node_modules \
-p 4200:4200 \
--rm \
myimage
一切正常,包括热重载等等。
现在,当我想使用 Chrome 调试器扩展在 Visual Studio Code 中调试此应用程序时,问题就出现了。我认为这将是小菜一碟,我只需放置一个断点并使用默认的 Launch Chrome
配置开始调试。
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}"
}
]
}
调试开始,Chrome 启动,我已经引导应用程序到达断点。现在有趣的部分开始了,因为我的断点被移动了两行(我将其放置在单击链接后启动的测试函数中)。此外,有时它可以工作,并且我的断点位于我放置它的位置,有时它会打开一个只读文件(我的文件,但只是只读),文件末尾有 Webpack 注释,最后,有时应用程序不会达到我的断点。
所以我不知道该怎么办,因为我从来没有处理过这样的问题。也许我完全错了,这不是在 Docker 中调试 Angular 应用程序的方式,或者也许我在某个地方犯了错误。
编辑:
经过多次测试,发现这并不是与Docker相关的bug。正常的调试(没有 Docker)似乎也不起作用。更多详情here .
最佳答案
这与源映射问题有关。此 launch.json
有效:
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}",
"sourceMapPathOverrides": {
"webpack:/*": "${webRoot}/*"
}
}
]
}
关于angular - 如何在 Docker 容器 Visual Studio Code 中调试 Angular 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49466651/