问题标签 [angular9]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - 为什么 Angular 9 必须预编译自己的代码?
我刚刚将我的项目升级到 Angular 9,我注意到的第一件事是我的 CI 中的构建时间显着增加(从 2 分钟到 4 分钟)。
分析日志,每次执行测试或构建时,CLI 都会执行预编译。这是由于新的 Ivy 架构,但据我了解,这种编译应该只发生在与 Ivy 不兼容的代码上。
那么为什么我Compiling @angular/common : es2015 as esm2015
在构建中看到很多(主要来自@angular 包)?Angular 代码本身不应该与 Ivy 兼容吗?
注意:这也发生在一个新项目中(只有几个库)。
更新 所有需要构建的命令都会发生这种情况。前任:
ng test --code-coverage=true --watch=false --browsers=ChromeHeadle
ng b -c=staging --aot
更新 2
我正在添加我的构建进行比较:pre angular 9和 after angular 9 迁移(构建仍然失败,但我们可以使用单元测试作为参考,从 ~2 分钟到 ~4 分钟的总执行时间)
angular - Angular 9:使用 WebStorm 在库中进行 Karma 测试调试
尝试使用 WebStorm 调试 Angular 库时,这里有人遇到问题吗?我正在尝试创建一个 Karma 测试来测试我的服务,但不幸的是,由于没有达到我的断点,因此无法进行最后一次 Angular 更新调试。
我的 angular.json 中的测试部分如下:
我的 tsconfig.spec.js 如下:
我正在使用以下依赖项:
以下是我在调试时执行测试时 WebStorm 的输出:
奇怪的是,我的测试正在运行,并且在更新 Angular 之前调试已经运行。我还可以通过附加到端口来调试普通的 Angular 应用程序。当我尝试调试 Karma 测试时,它只是不起作用,有什么想法吗?
angular - 提供在平台与根
我正在努力寻找服务中的哪一个root
和platform
选项providedIn
更好。
两者都使服务在整个应用程序中可用,后者通过服务,前者通过根注入器。对此有何建议?
npm - ng-stripe-checkout 模块导入 Angular 9
升级到 Angular9 后,我在构建时遇到问题。这是我得到的错误:
node_modules/ng-stripe-checkout/src/stripe-checkout.module.d.ts:1:22 中的错误 - 错误 NG6002:出现在 AppModule 的 NgModule.imports 中,但无法解析为 NgModule 类
有任何想法吗?
angular - 从 Angular 8 更新到 9 导致生产构建的“ReferenceError: SomeAbstractModelClass is not defined”
我已将Angular 8 应用程序更新为 Angular 9。一切运行良好,如果我使用 启动应用程序ng serve
,但如果我使用 启动应用程序ng serve --prod
,我会在运行时收到以下错误:
我不知道问题可能是什么,因为所有内容都带有一些警告。
我还尝试禁用常春藤。:
然后我收到以下错误消息:
SomeOtherModelClass
是扩展另一个抽象类的类。
这个问题的原因可能是什么?如果我能提供更多信息,请告诉我。
angular - Job name "..getProjectMetadata" does not exist
I updated my angular to v9 and when I try to go back in v8, I receive this error. I have already tried the following:
- uninstall -global angular/cli
- uninstall angular/cli
- go back to my last package.json
- delete node_module folder
- delete repo
This error continues to show.
My stacktrace is :
angular-errors.log :
ng --version :
javascript - ExpressionChangedAfterItHasBeenCheckedError 在启用 Ivy 时更新到 Angular 9 后更改子级的父属性
我最近将我的 Angular 项目更新到版本 9。我正在使用一项服务来更新主菜单的标题,它运行成功,但现在生成了这个错误:
core.js:5828 ERROR 错误:ExpressionChangedAfterItHasBeenCheckedError:表达式在检查后已更改。以前的值:'主标题'。当前值:“新标题”。
每次标题更改时都会发生此错误。
这是我的代码的一部分:
我的路由:
应用程序路由.module.ts:
主要成分:
main.component.ts:
我用来更改标题的服务: main.service.ts:
最后是我在仓库模块中更改标题的客户之一:
main.service.ts:
更新:
该问题仅在启用 Ivy 并处于开发模式时发生。"enableIvy": false或生产时没有错误。
angular - 将角度 6 升级到 9 的最佳方法是什么?
目前,我的项目以 Angular 6 运行,我现在必须以 Angular 9 升级它,那么升级的最佳方式是什么?升级时要重点关注哪一点?分享你的知识
decorator - Angular 9 - 常春藤中的错误,装饰器元数据必须是内联的
Angular 9 和 ivy 是最近才发布的。但是迁移现在让我很头疼。不幸的是,列出的错误无处可寻,也不是很有意义。我寻求帮助!