Angular 的 AOT 和 CSR 都是编译 Angular 应用程序的方式,它们的主要区别在于时间和位置。AOT( Ahead of Time) 编译发生在应用程序部署到生产环境之前,而 CSR(Client Side Rendering)编译发生在用户在浏览器上浏览应用程序时。下面是这两种编译方式的整个过程:
AOT 编译过程:
- 创建 Angular 应用程序并运行 ng serve 命令。
- 应用程序被编译为 AOT 模式,并生成 main.js 文件和一些预编译文件。
- 在部署应用程序之前,您可以使用 ng build —prod 命令使用 AOT 模式重新编译应用程序。
CSR 编译过程:
- 创建 Angular 应用程序并运行 ng serve 命令。
- 应用程序在浏览器中加载并运行,然后使用 JavaScript 编译和呈现应用程序。
- 当用户在应用程序中导航到新视图时,Angular 将动态加载新的组件和模板文件。
示例代码:
AOT编译
- ng build --aot
- ng build --prod
CSR 编译
- ng serve
- ng build --prod