Wou*_*pen 4 angular angular-aot angular-jit
该角文档指定几个原因支持JIT的使用AOT编译:
但是,在寻找使用 JIT 的参数时,我没有找到。此外,从 Angular 5.2 升级到 Angular 8 后,我在运行开发构建(使用 JIT)时突然遇到一个奇怪的错误。错误是:
ERROR in ./src/app/shared/app-configuration/shared/app-configuration.model.ts 22:16-35
"export 'IMyComponents' was not found in '@mycompany/mypackage'
Run Code Online (Sandbox Code Playgroud)
运行产品构建(使用 AOT)时,一切正常。这让我感到惊讶,因为我从未遇到过prod 构建成功而dev 构建失败的 Angular 编译问题。
所以我的假设是 JIT 只适用于开发构建(即速度)。添加--aot标志可以安全地完成,没有任何问题。或者我错过了什么?
小智 7
没错,Angular 提供了两种绑定应用程序的方法:
即时 (JIT),它在运行时在浏览器中编译您的应用程序。(当你跑步时ng serve)
Ahead-of-Time (AOT),它在构建时编译您的应用程序。(当你跑步时ng serve --aot=true)
默认情况下,带有 --prod 元标志 (ng build --prod) 的 ng build 命令使用 AOT 进行编译。
Angular Ahead-of-Time (AOT) 编译器在浏览器下载和运行代码之前的构建阶段将您的 Angular HTML 和 TypeScript 代码转换为高效的 JavaScript 代码。在构建过程中编译您的应用程序可在浏览器中提供更快的渲染。
由于JIT在运行时编译您的应用程序,它可以优化编译并仅构建必要的代码。所以在开发模式下,通常使用 JIT 来节省完整构建的时间。使用 JIT 编译时间会更快。
AOT优化了运行速度,但编译时间较长,所以在生产中使用比较普遍。AOT 还将优化您的应用程序的大小,因为所有文件都将在运行之前进行编译。
| 归档时间: |
|
| 查看次数: |
1163 次 |
| 最近记录: |