angular - 如何在 Docker 容器 Visual Studio Code 中调试 Angular 应用程序?

标签 angular docker visual-studio-code

我关注了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/

相关文章:

css - 使用 CSS 变量创建 Angular Material 主题

docker - GitLab:如何列出具有大小的注册表容器

docker - 重新启动容器时如何在 Docker 中重用相同的卷?

visual-studio-code - 在 vscode 编辑器关闭之前是否有事件触发?

ubuntu - 如何设置 Visual Studio Code 以在 Linux 上调试 C 程序?

Angular 相同的元素在不同的屏幕尺寸上具有不同的绑定(bind)

angular - 如何在 Angular/ typescript 中正确覆盖子类中基类的属性? ngx-quill 和 Material

Angular 4 - Reactive Forms - 从列表中未引用的对象中选择列表中的项目 - trackby 问题?

nginx - Vagrant Docker Nginx 解决缓慢

visual-studio-code - 转到 VSCode 中的下一个方法快捷方式