问题标签 [angular2-aot]

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.

0 投票
2 回答
920 浏览

angular - Angular AOT 编译失败

我需要尽快将网站投入生产,并正在研究 AOT 以提高性能(我的应用程序需要大约 3-4 秒才能在 Chrome 上加载,在 Firefox 上需要 8-10 秒,这对于生产来说是不可能的)。

我遵循了https://angular.io/docs/ts/latest/cookbook/aot-compiler.html上的指南,但我坚持编译部分......

如果我输入: node_modules/.bin/ngc -p tsconfig-aot.json 我会得到一个很好的“编译失败”,其中包含大约 10000 个错误的列表,比如这个:

我无法解决所有这些问题,因为有些直接来自 Angular(我猜),例如:

编译失败是否与所有这些错误有关,如果我解决了它们,编译会通过吗?如果是的话,即使是 Angular 也会导致我提供的错误,这是否正常?

谢谢 !

注意:我使用的是 Angular 2.1.1。

0 投票
1 回答
777 浏览

angular - Angular2 SystemJs,使用 Gulp 提前编译

任何人都可以指导如何使用 Gulp 提前编译使用 SystemJs 的 Angular2 项目。我的意思是自动化https://angular.io/docs/ts/latest/cookbook/aot-compiler.html中提到的所有步骤

即生成 NgFactories、Treeshaking 和捆绑?

0 投票
2 回答
946 浏览

javascript - 类具有或正在使用来自外部模块的名称“SafeUrl”,但无法命名

sanitizer.bypassSecurityTrustUrl用来在页面上放置指向 blobURL 的链接。只要我不 AoT 编译项目,它就可以正常工作。

sanitize 函数采用如下 URL:

如果我使用 AoT 编译,我会收到以下错误消息:

模块构建失败:错误:/.../src/app/app.component.ts (18,3):从导出类返回的公共方法类型已经或正在使用来自外部模块的名称“SafeUrl”“/... /node_modules/@angular/platform-b​​rowser/src/security/dom_sanitization_service”但不能命名。)

我将 CLI 与 Angular 2.1.0 一起使用

任何人都知道我可以如何规避这个问题?还是应该将其报告为错误?

0 投票
1 回答
203 浏览

angular - 如何动态设置 LocationStrategy 类

如何在使用提前编译器编译的 Angular 2 应用程序中动态配置 AppModuleNgFactory?

LocationStrategy应根据window.isCordova环境变量设置提供程序类

如果应用程序没有使用 AOT 编译,它可以正常工作。但是当它使用 AOT 编译时,LocationStrategyprovider 总是设置为HashLocationStrategy.

知道如何做到这一点吗?

0 投票
6 回答
16370 浏览

css - angular-cli可以删除未使用的css吗?

到目前为止,我可以使用 angular cli 创建的最小包是通过运行

ng build --aot true -prod

我想知道构建过程是否还会从引导程序中删除未使用的 css 类?

如果不是,我该如何添加 purifycss 之类的库?

编辑 2018 年 4 月

我仍然没有找到任何令人满意的解决方案来解决他的问题,尤其是与带有角度的延迟加载模块兼容的解决方案......

干杯

0 投票
1 回答
1019 浏览

angular - AOT 编译器编译 ngfactory 文件

我是 AOT 编译器的新手。

我使用此选项将所有文件编译到“已编译”目录:

但是当我运行“ngc”时,它也会尝试编译新创建的 .ngfactory 文件并在它们上抛出输入错误。

我试图删除“已编译”目录并重新编译代码,但它又发生了。

我还尝试在 tsconfig-aot.json 文件中添加“排除”键(就像我在 typescript 编译器中一样)并添加“已编译”目录,但这没有帮助。

有任何想法吗?

==== 编辑 ====

更多信息可能会有所帮助,我尝试将“genDir”设置为应用程序目录之外的目录,然后我收到一条错误消息,提示编译器找不到模块“app.module.ngfactory”。

据我了解,这意味着它尝试编译“.ngfactory”文件,因为我将 main.ts 从:

到:

这可能会导致编译器编译 app.module.ngfactory 并从那里移动到“app.module.ngfactory”中的其他导入并尝试编译所有“.ngfactory”文件。

是否有意义?我完全按照谷歌显示的那样更改了“main.ts”文件:https ://angular.io/docs/ts/latest/cookbook/aot-compiler.html

0 投票
1 回答
5850 浏览

angular - 具有延迟加载的 Angular2 AOT 无法解析 [延迟模块的路径].ngfactory.ts

我正在尝试将已经使用延迟加载模块的应用程序转换为 AOT。我正在使用 @ngtools/webpack 工具包来编译 AOT 代码,但是我遇到了一个错误,即 Angular 无法找到看起来像延迟加载的模块的代码。

在我的应用程序路由定义中值得一提的是,这个项目的模块是延迟加载的:

这是我的设置的样子:

tsconfig:

网页包:

主要.aot.ts

在 webpack 中,我正在使用 @ngtools/Webpack 编译 ts 文件:

谢谢您的帮助!

0 投票
1 回答
272 浏览

angular - Angular 2 AoT 编译会导致应用程序问题并且在 JiT 中运行良好

我遵循了来自以下位置的 Angular 2 示例:
https ://angular.io/docs/ts/latest/cookbook/aot-compiler.html

使用 ngc AoT 编译应用程序后,路由不起作用,它只是停留在同一页面上,没有任何反应。

由于应用程序确实加载了,所以当使用 tsc 进行 JiT 编译而使用 ngc 编译时 AoT 编译失败时,甚至想不到可能有问题的地方都太奇怪了。

我不认为在这里粘贴代码会有所帮助,但我想知道您是否知道当应用程序处于 AoT 模式时我可以使用的任何工具或调试功能。

0 投票
0 回答
363 浏览

angularjs - Angular2 AOT 测试

我目前开始使用 NGC 使我的库 AOT 准备就绪,但我注意到有时一些错误仅在使用库时可见,而不是在 NGC 期间的编译级别。(不是这些错误是无法通过单元测试解决的 ngc 错误)

因此,我想以某种方式进行测试,以避免在使用库时发送有问题的库。

你们有什么建议?

0 投票
1 回答
431 浏览

kendo-ui-angular2 - 使用汇总和外部依赖项部署 Angular 2 应用程序 Aot

我已经实现了一个使用Kendo UI Grid的 angular 2 应用程序:
使用 AoT + Rollup 部署应用程序时我被卡住了:

错误:“GridModule”不是由 node_modules\@progress\kendo-angular-grid\dist\npm\js\main.js 导出的(由 app\app.module.js 导入)。

从汇总文档中尝试过但我不明白如何配置namedExports

使用上述配置并不能解决问题。

编辑:最后我的网格工作配置是:

如果启用了“包含”部分,它将不起作用