【问题标题】:Debugging Angular2 apps in Visual Studio Code在 Visual Studio Code 中调试 Angular2 应用程序
【发布时间】:2016-10-12 05:49:38
【问题描述】:

我正在尝试使用 VSC 开发一个基本的 angular2 应用程序。代码是用 TypeScript 编写的。它是一个基本的待办事项应用程序,所有代码(.ts、js、.js.map)都在 app/ 子文件夹中。

这是我运行时的 launch.json 配置:

 {
            "name": "Run",
            "type": "node",
            "request": "launch",
            "program": "${workspaceRoot}/node_modules/lite-server/bin/lite-server",
            "stopOnEntry": false,
            "args": [],
            "cwd": "${workspaceRoot}",
            "preLaunchTask": null,
            "runtimeExecutable": null,
            "runtimeArgs": [
                "--nolazy"
            ],
            "env": {
                "NODE_ENV": "development"
            },
            "externalConsole": false,
            "sourceMaps": false,
            "outDir": null
        },

当我运行它时,应用程序在 chrome 中加载,但我的断点都不起作用。当我悬停一个断点时,我看到“断点被忽略,因为找不到生成的代码(源映射问题?)。”

我在 /app/todo.component.ts 中有一个断点。在我的 /app/todo.component.js.map 我可以看到:

"file":"todo.component.js","sourceRoot":"/Users/xxx/Documents/webs/angular2-todo/app/","sources":["todo.component.ts"],"names":[],"mappings":";;;;;;;;;;

来源根目录和来源对我来说似乎没问题。

有什么想法吗?

【问题讨论】:

标签: angular visual-studio-code


【解决方案1】:

你必须这样做:

  1. 安装“Debugger for Chrome”-扩展
  2. 删除launch.json并创建一个新的(选择“Chrome”而不是“Node.js”)。
  3. 将端口更改为 3000(如果您使用 lite-server,就像在 tour-of-heroes-tutorial 中一样)并添加一个“userDataDir”:

示例:

{
    "name": "Launch Chrome against localhost, with sourcemaps",
    "type": "chrome",
    "request": "launch",
    "url": "http://localhost:3000",
    "sourceMaps": true,
    "webRoot": "${workspaceRoot}",
    "userDataDir": "${workspaceRoot}/out/chrome"
}
  1. 使用“npm start”(终端窗口或控制台)启动服务器。

  2. 启动调试(F5 或在下拉菜单中选择“针对本地主机启动 Chrome...”)。

【讨论】:

  • 这将命中 ts 文件中的断点。我发现 userDataDir 很重要!
  • 这适用于来自github.com/angular/quickstart 的“英雄之旅”项目,但不适用于使用“ng new projectname”生成的没有 *.js 和 * 的项目.js.map 文件在其 src/app/ 目录中。有没有办法使用在 src/ 下没有生成文件的项目结构进行调试?
  • 此外,您可以使用 preLaunchTask 选项来调用任务code.visualstudio.com/docs/editor/tasks 并让该任务运行“npm start”以使所有操作仅使用 f5 即可
猜你喜欢
  • 2016-04-01
  • 2022-06-15
  • 1970-01-01
  • 2016-12-27
  • 1970-01-01
  • 2022-07-22
  • 1970-01-01
  • 2019-04-19
  • 2021-10-23
相关资源
最近更新 更多