为什么在角度8更新后vs19中的断点停止工作?

时间:2019-07-20 02:30:56

标签: angular typescript breakpoints visual-studio-2019 angular8

摘要: 我昨天刚刚使用angular cli和ng update命令将我的angular webproject从7.2.15版本更新到8.1.2。但是现在,如果我尝试调试我的打字稿代码,那么断点突然在Visual Studio Community 2019中不再起作用了吗?

因此,当我激活一个断点时,该断点会变成白色并显示标签文本,内容如下:断点已设置但尚未绑定。

我已经尝试过的操作: 使用google时,我发现其他用户有类似的问题,他们通过在tsconfig.json中进行设置解决了该问题。

"sourceMap": true

对我来说很不幸,因为我的tsconfig.json已经将sourceMap属性设置为true,但断点仍然没有被击中,所以这并没有改变。

我的猜测是,角度更新多少会覆盖某些文件中的某些设置,而我完全不知道。

显示一些代码: 在查看我的提交的比较时,我注意到在tsconfig.json和package.json文件中,许多其他内容也发生了变化,例如:

tsconfig.json

+ "downlevelIteration": true,
- "module": "es2015",
+ "module": "esnext",
- "target": "es5",
+ "target": "es2015",

package.json:

- "@angular-devkit/build-angular": "^0.12.4",
+ "@angular-devkit/build-angular": "~0.801.1",
- "codelyzer": "~4.5.0",
+ "codelyzer": "^5.0.1",
- "zone.js": "~0.8.29"
+ "zone.js": "~0.9.1"
- "typescript": "3.1.6"
+ "typescript": "3.4.5"

tslint.json:

- "use-input-property-decorator": true,
- "use-output-property-decorator": true,
- "use-host-property-decorator": true,
+ "no-inputs-metadata-property": true,
+ "no-outputs-metadata-property": true,
+ "no-host-metadata-property": true,

预期的结果/行为:预期会达到断点,因此我可以看到代码中发生了什么。但是正如所说的,断点只会变白,不会被束缚。

最后一个问题:最后,我的问题是:如何在角度8更新后如何在VS2019中再次使用断点?

(21.07.2019)编辑1:同时,我还尝试删除ClientApp文件夹中的“ node_modules”文件夹,然后使用npm install重新安装。不幸的是,断点仍然不会被击中。

(22.07.2019)编辑2“这不能解决吗?” :好像将angular还原到7.2.15版本已经解决了断点问题,我可以再次查看我的断点。尽管我对这种方法不太满意,因为将其更新到当前版本会很棒。 I also opened a case over at github on the official @angular/cli hub, regarding this issue.如果有人有更好的解决方案从@ 7.2.15升级到@latest稳定版,我将保持开放状态。

谢谢

3 个答案:

答案 0 :(得分:1)

从Angular 8.1升级到8.2时,我发现必须将@ angular-devkit / build-angular从0.803.8降级到0.801.2.。

https://github.com/angular/angular-cli/issues/15139中所述,原因似乎是launch.json中的sourceMap中断了。对我来说,它破坏了sourceMapPathOverrides。

即使它指出它在angular-cli 8.2.1中已修复,也无法在cli 8.3.8中使用。

答案 1 :(得分:0)

我终于找到了对我有用的解决方案。

我的错误:我相信我的错误是试图同时更新Angular和Angular材质!

通过致电

{ng update --all或链接ng update @angular/core @angular/cli @angular/materials @angular/cdk之类的更新命令,导致ng-cli混淆@ angular / core / cli @ angular / material / cdk之间的依赖关系...

解决方案:相反,我必须在两个单独的步骤中使用@latest的一种特殊情况来做到这一点:

ng update @angular/core@latest @angular/cli@latest 注意:使用@latest安装可以从7更新的最新可用Angular,因此在本例中为8 ...

那之后我跑了

ng update @angular/material @angular/cdk 注意:,如果没有@latest,因为自从我已经将Angular更新到版本8,否则它将把Angular依赖关系更新到版本9(我尝试过,必须将更新两次还原为c:叹气

然后正确安装了具有最新@angular-devkit/build-angular的Angular 8,我的断点将在Visual Studio中再次工作。

希望这在遇到依赖关系问题时对某人有帮助!

干杯!

答案 2 :(得分:-1)

将“ @ angular-devkit / build-angular”:“ 0.801.2”更改为“ @ angular-devkit / build-angular”:“ 0.801.0”