1

我目前正在使用electron-forge工具使用 Angular 构建一个 Electron 应用程序,并且我正在编译 Angular 代码以捆绑它。我开始实现 AOT 编译,但我卡住了,因为我还没有找到使用 AOT 需要的组件相对路径的方法(如果有兴趣,更多关于这个问题)。

另一方面,我想知道是否值得为 Electron 应用程序进行 AOT 编译。正如AOT 编译手册中的 Angular 官方文档所述:

在此处输入图像描述

上面的大部分原因都是在使用浏览器客户端时不得不做的。可以看出,较小的 Angular 框架下载大小可能是一个好处,这实际上取决于所讨论的应用程序。

4

4 回答 4

0

使用 Angular 进行 AOT 编译,它使用 CLI 命令ng build预编译所有文件并将其捆绑到文件夹中dist/project_name,然后从该文件夹中提供服务。正如您所提到的,您使用的是 electron-forge,它使用 JIT 编译并且根本不会触及 angular 的 AOT 编译中的 build 文件夹。所以 AOT 编译对电子应用没有帮助。

于 2018-12-07T14:57:29.900 回答
0

是的,这绝对是个好主意。

@estus 当你说

AOT 并不一定会减少流量

这不是真的。

当您使用AOT(with angular-clior webpack) 编译您的应用程序时,Angular 的编译器将从包中删除(从 600+kb 到 300kb的包)。

您的应用程序越大,Angular 的编译器就越需要解析 HTML 模板。AOT所以是的,即使对于在 Electron 中运行的应用程序(带有本地文件),使用它来减少脚本编写和启动时间也是有意义的。

于 2017-03-22T14:18:45.917 回答
0

AOT 将生成“优化友好”的 JS 代码,这些代码将由浏览器 (chromium) 内的 JIT 编译器(JS 到机器代码)使用。因此,对于运行时性能,我相信会有一些改进。

对于启动时间,它取决于我认为的所有总有效负载。据我了解,AOT 有时会产生更大或更小的尺寸,这真的取决于。

于 2017-03-28T06:14:40.270 回答
0

在 Angular 2 应用程序中实现AOT是个好主意,因为它会预编译所有导入/注册的文件并捆绑在几个文件中,从而增强/改进您的 Web 请求性能。

并且它将您所有的打字稿代码转换为 JavaScript 代码并缩小,因此文件大小最小化,页面加载时很少文件限制文件请求,并导致浏览器快速响应。

我还在我的应用程序中实现了 AOT,它就像蛋糕上的樱桃一样工作。

于 2017-03-28T06:23:05.690 回答