gpt4 book ai didi

angular - 在 Angular 中使用 JIT 编译是否比使用 AOT 更有优势?

转载 作者:行者123 更新时间:2023-12-02 16:26:40 24 4
gpt4 key购买 nike

Angular docs指定使用 AOT 编译而支持 JIT 的几个原因:

  • 渲染速度更快
  • 更少的异步请求
  • 较小的 Angular 框架下载大小
  • 尽早检测模板错误
  • 更好的安全性

但是,在寻找使用 JIT 的参数时,我没有找到任何参数。此外,在从 Angular 5.2 升级到 Angular 8 后,我在运行 dev 构建(使用 JIT)时突然遇到一个奇怪的错误。错误是:

ERROR in ./src/app/shared/app-configuration/shared/app-configuration.model.ts 22:16-35
"export 'IMyComponents' was not found in '@mycompany/mypackage'

当运行prod构建(使用AOT)时,一切都很好。这让我感到惊讶,因为我从未遇到过 prod 构建成功dev 构建失败的 Angular 编译问题。

所以我的假设是 JIT 仅适合开发构建(即速度)。添加 --aot 标志可以安全地完成,没有任何问题。或者我错过了什么?

最佳答案

你是对的,Angular 提供了 2 种方式来绑定(bind)你的应用程序:

Just-in-Time (JIT),它在运行时在浏览器中编译您的应用。 (当您运行ngserve时)

  • 在浏览器中编译
  • 每个文件单独编译
  • 更改代码后和重新加载浏览器页面之前无需构建
  • 适合本地发展

提前 (AOT),它在构建时编译您的应用。 (当您运行 ngserve --aot=true 时)

  • 由机器本身通过命令行编译(更快)
  • 所有代码一起编译,在脚本中内联 HTML/CSS
  • 无需部署编译器
  • 适合生产构建

The ng build command with the --prod meta-flag (ng build --prod) compiles with AOT by default.

The Angular Ahead-of-Time (AOT) compiler converts your Angular HTML and TypeScript code into efficient JavaScript code during the build phase before the browser downloads and runs that code. Compiling your application during the build process provides a faster rendering in the browser.

由于JIT在运行时编译您的应用,它可以优化编译并仅构建必要的代码。因此在开发模式中,通常使用 JIT 来节省完整构建的时间。使用 JIT 编译时间会更快。

AOT优化了运行速度,但编译时间较长,这就是为什么在生产中使用它的原因。 AOT 还将优化应用程序的大小,因为所有文件都将在运行之前进行编译。

关于angular - 在 Angular 中使用 JIT 编译是否比使用 AOT 更有优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56802691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com