为什么 angular 8 更新后 vs19 中的断点停止工作?
Why did the breakpoints in vs19 stop working after angular 8 update?
总结:
我昨天刚刚使用 angular cli 和 ng update 命令将我的 angular webproject 从版本 7.2.15 更新到 8.1.2。但是现在,如果我尝试调试我的打字稿代码,突然之间断点在 visual studio 社区 2019 中不再起作用了?
所以当我激活一个断点时,断点会变成白色并显示一个标签文本,上面写着类似这样的内容:Breakpoint set but not yet bound。
我已经尝试过的:
使用 google 时,我发现其他用户也有类似的问题,他们通过在 tsconfig.json 中设置来解决问题。
"sourceMap": true
不幸的是,这并没有改变任何东西,因为我的 tsconfig.json 已经将 属性 sourceMap 设置为 true 但断点仍然不会被击中。
我的猜测是 angular 更新在某种程度上覆盖了某些文件中的某些设置,我完全不知道。
显示一些代码:
查看我的提交比较,我注意到在 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,
预期 Result/Behaviour: 预期会遇到断点,这样我就可以看到我的代码中发生了什么。但正如所说,断点只是变白,不会被绑定。
最后一个问题:所以我最后的问题是:如何在 angular 8 更新后让断点在 VS2019 中再次工作?
(21.07.2019) 编辑 1: 同时,我还尝试删除 ClientApp 文件夹中的 'node_modules' 文件夹,然后使用 npm install 重新安装。不幸的是,断点仍然不会被击中。
(22.07.2019) 编辑 2 "This can't be the solution?" : 似乎将 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 stable,我会把它打开。
谢谢
将“@angular-devkit/build-angular”:“0.801.2”更改为“@angular-devkit/build-angular”:“0.801.0”
我终于找到了适合我的解决方案。
我的错误:我认为我的错误是试图同时更新 Angular 和 Angular Material!
通过调用
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 安装最新可用的 Angular 可以从 7 更新...所以在这种情况下是 8...
之后我运行:
ng update @angular/material @angular/cdk
注意: 如果没有 @latest,否则这会将 Angular 依赖项更新为版本 9(下一步),因为我已经将 Angular 更新为 8。(我试过了, 不得不恢复更新两次 c: sigh)
然后 Angular 8 和最新的 @angular-devkit/build-angular
安装正确,我的断点将在 visual studio.
中再次工作
希望这对遇到依赖问题的人有所帮助!
干杯!
从 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。
总结: 我昨天刚刚使用 angular cli 和 ng update 命令将我的 angular webproject 从版本 7.2.15 更新到 8.1.2。但是现在,如果我尝试调试我的打字稿代码,突然之间断点在 visual studio 社区 2019 中不再起作用了?
所以当我激活一个断点时,断点会变成白色并显示一个标签文本,上面写着类似这样的内容:Breakpoint set but not yet bound。
我已经尝试过的: 使用 google 时,我发现其他用户也有类似的问题,他们通过在 tsconfig.json 中设置来解决问题。
"sourceMap": true
不幸的是,这并没有改变任何东西,因为我的 tsconfig.json 已经将 属性 sourceMap 设置为 true 但断点仍然不会被击中。
我的猜测是 angular 更新在某种程度上覆盖了某些文件中的某些设置,我完全不知道。
显示一些代码: 查看我的提交比较,我注意到在 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,
预期 Result/Behaviour: 预期会遇到断点,这样我就可以看到我的代码中发生了什么。但正如所说,断点只是变白,不会被绑定。
最后一个问题:所以我最后的问题是:如何在 angular 8 更新后让断点在 VS2019 中再次工作?
(21.07.2019) 编辑 1: 同时,我还尝试删除 ClientApp 文件夹中的 'node_modules' 文件夹,然后使用 npm install 重新安装。不幸的是,断点仍然不会被击中。
(22.07.2019) 编辑 2 "This can't be the solution?" : 似乎将 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 stable,我会把它打开。
谢谢
将“@angular-devkit/build-angular”:“0.801.2”更改为“@angular-devkit/build-angular”:“0.801.0”
我终于找到了适合我的解决方案。
我的错误:我认为我的错误是试图同时更新 Angular 和 Angular Material!
通过调用
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 安装最新可用的 Angular 可以从 7 更新...所以在这种情况下是 8...
之后我运行:
ng update @angular/material @angular/cdk
注意: 如果没有 @latest,否则这会将 Angular 依赖项更新为版本 9(下一步),因为我已经将 Angular 更新为 8。(我试过了, 不得不恢复更新两次 c: sigh)
然后 Angular 8 和最新的 @angular-devkit/build-angular
安装正确,我的断点将在 visual studio.
希望这对遇到依赖问题的人有所帮助!
干杯!
从 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。