【问题标题】:Is AOT compilation helpful for Electron applicationsAOT 编译对 Electron 应用程序有帮助吗
【发布时间】:2017-08-14 15:46:15
【问题描述】:

我目前正在使用 electron-forge 工具使用 Angular 构建一个 Electron 应用程序,并且我正在编译 Angular 代码以捆绑它。我开始实现 AOT 编译,但由于我没有找到使用 AOT 所需的组件相对路径的方法(如果有兴趣,请参阅 this 问题更多),因此陷入困境。

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

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

【问题讨论】:

  • 您如何计算“上述大多数原因”? Electron 是一个浏览器客户端。您不必关心流量,因为它是本地的(而且 AoT 并不一定会减少流量)。但除此之外,所有点仍然有效。我猜,案子已经结案了。

标签: angular electron angular2-aot electron-forge


【解决方案1】:

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

@estus 当你说

AOT 并不一定会减少流量

这不是真的。

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

你的应用越大,Angular 的编译器就越需要解析 HTML 模板。 所以是的,即使是在 Electron 中运行的应用(带有本地文件),使用 @987654324 也是有意义的@ 以减少脚本编写,从而缩短启动时间。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      我还在我的应用中实现了 AOT,它的工作原理就像蛋糕上的樱桃。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-03
          • 1970-01-01
          • 2017-11-30
          相关资源
          最近更新 更多