我读了很多相关的问题,调试不起作用。在我的情况下,它的工作原理,但它“很奇怪”。我在一行代码中设置了断点,但它在完全不同的行中断。我觉得它与源地图有关,但不确定它是什么。
环境:
使用带ng new
为F5启动器(launch.json)添加了以下配置:
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}"
}
]
这是app.component.ts
的代码:
import { Component, OnInit } from '@angular/core';
import { isUndefined } from 'util';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
title = "Portal";
ngOnInit(): void {
this.test();
}
test() {
const person = { FirstName: "John" };
person.FirstName = "sf";
let b = "test string";
b = "other string";
}
}
在b = "other string"
在终端ng serve
照常使用
点击F5 - Chrome会打开并显示主屏幕。
问题1: Chrome根本没有刹车。
当我刷新Chrome页面时 - 断点受到攻击但位置错误。它可以在ngOnInit
或Component
行,非常“随机”。
问题2:在错误的一行发生破坏
有没有办法让这项工作成功,所以我可以使用VSCode轻松设置和调试?
答案 0 :(得分:0)
很难说为什么事情在您的设置中表现得很奇怪。我也使用VSCode来调试Angular应用程序,我的设置工作得非常好,我将在这里分享它,以便它可以提供帮助。
launch.json
看起来像这样
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome",
"url": "http://localhost:4200",
"webRoot": "${workspaceRoot}",
"sourceMaps": true,
"userDataDir": "${workspaceRoot}/.vscode/chrome",
"runtimeArgs": [
"--disable-session-crashed-bubble"
]
},
{
"name": "Attach Chrome",
"type": "chrome",
"request": "attach",
"url": "http://localhost:4200",
"port": 9222,
"webRoot": "${workspaceRoot}",
"sourceMaps": true
}
]
}

ng serve
您现在应该可以开始调试您的应用(使用F5
)并且所有断点都可以正常工作。
答案 1 :(得分:0)
这似乎与这个问题有关:
Angular CLI 1.7.0 and Visual Studio Code - can't set breakpoints
解决方案是安装较旧版本的angular cli。