0

从 开始angular 9,Angular 开始使用一个名为的新渲染器引擎IVY,正如其文档所述,构建的代码在 dev 和 prod 环境中看起来相同并且易于调试,是否仍然需要在构建代码时传递--prod--aot选项

旧的构建命令

ng build --aot --prod

是不是新命令应该看起来像

ng build //for both prod and dev build

或者--prod产品构建只需要该选项

4

3 回答 3

4

Aot 从来都不是必需的,它在生产构建中默认设置为打开,在开发中默认设置为关闭。由于速度的提高,现在 aot 已成为所有环境的标准配置。因此,对于开发构建,您可以:

ng build

并用于生产构建

ng build --prod

你可以检查你的 angular.json 文件,看看哪个设置做了什么。所做的--prod不仅仅是打开提前编译器。在此构建期间正在进行许多其他优化

于 2020-02-29T20:09:51.333 回答
0

TLTR; 使用例如
--aot标志时不需要--prodng build --prod


ng build当您运行(仅构建)或ng serve(在本地构建和服务)CLI 命令时,JIT 编译是默认的。对于 AOT 编译,在or命令中包含该--aot选项:ng buildng serve

ng build --aot
ng serve --aot

ng build带有--prod元标志 ( ng build --prod) 的命令默认使用 AOT 编译

您可以自定义angular.json包含aot特定命令的默认值,以下是添加 aot 的方法build

"build": {
    options {
        ...
        "aot": true,
    } 
}

AOTbuild并由serveAngular 团队推荐,但尚未默认。更多细节在这里

于 2020-03-01T01:57:34.717 回答
0

默认 aot 值取决于您正在运行的角度版本:

Angular 提供了两种编译应用程序的方法:

  • 即时 (JIT),它在运行时在浏览器中编译您的应用程序。这是Angular 8之前的默认设置。
  • Ahead-of-Time (AOT),它在构建时编译您的应用程序和库。这是自Angular 9以来的默认设置。
于 2021-05-18T14:38:46.390 回答