Angular 版本和版本控制

7 Jan 2025 | 7 分钟阅读

在本教程中,我将详细介绍 Angular 的版本和版本控制。请参考我们之前的帖子,其中我们提供了 Angular 框架的简洁概述。到本教程结束时,您将了解各种 Angular 版本如何工作以及每个版本带来的改进和新功能。到目前为止,Google 已发布了七个版本的 Angular,它们是:

Angular JS 1.x

AngularJS 是一个开源框架,用于扩展单页应用程序 (SPA),它完全基于 JavaScript。它最初于 2010 年由 Google 发布,现在由公司与用户和组织社区共同维护。Angular JS 提供的一些功能如下:

  • 它的基础由模型-视图-控制器 (MVC) 和模型-视图-视图-版本 (MVVM) 架构组成。
  • 6.10 是最新的稳定版本。
  • Angular 开发代码的编写者使用 JavaScript。
  • 通过引入标签、属性和表达式,它扩展了 HTML 所提供的功能。
  • 它通过集成的模板提供了更简单的事件处理以及路由。
  • 表单验证、依赖注入、动画和其他功能是其中的关键组件。

Angular 2

Angular 2 框架完全使用 TypeScript 编程语言从头开始重写,取代了其原始的 Angular 1 或 Angular JS。Google 于 2016 年 9 月发布了它。以下是 Angular 2 的一些功能:

  • 它是一个更现代、更快、高度可扩展的 JavaScript 框架。
  • 使用 Angular 2 构建的应用程序默认是移动友好的。
  • Angular 2 支持多种语言来构建代码,包括 Dart、TypeScript、ES5、ES6 等。
  • 基于组件的架构是其基础。

为什么没有 Angular 3?

Angular 2 框架只有一个代码库。换句话说,所有包都可以使用 @angular/package-name 约定进行下载。如下图所示,其中一些是 @angular/core、@angular/compiler、@angular/HTTP 和 @angular/router。

Angular 开发团队省略了版本 3 是因为版本不匹配。上图显示了所有包名称如何分配给版本 2,但路由包意外分配给了版本 3。为了保持与 Angular Router 版本的兼容性,Angular 开发团队绕过了这个版本,直接跳到了版本 4。

Angular 4

虽然 Angular 4 并非完全重写自 Angular 2,但它于 2017 年 3 月发布。它已经通过一些小的调整和几项新功能进行了更新。

此版本与 2.x.x 向后兼容大多数程序。Angular 4 与 2017 年 3 月发布的 Angular 2 没有显著差异。并非所有 Angular 2 都已在 Angular 4 中重写。Angular 团队在此版本中专注于提高应用程序的速度。以下是 Angular 4 的一些功能:

  • 得益于最新的修改,生成的代码现在小了 60%。
  • 动画已移至 @angular/animations 包。
  • 它提供了更快的编译速度。
  • 使用 Angular 4,我们可以验证电子邮件而无需开发模式,因为它提供了电子邮件验证器。
  • 提供了更好的支持 bug 修复警报。
  • 它可以处理 if-else 子句。

Angular5

Angular 5 已发布,与 Angular 4 在任何有意义的方面都没有显着差异。此版本已进行了许多新功能和增强。以下是 Angular 5 的一些功能:

Angular 5 添加了 HTTPClient API,它简化了 Angular 应用程序的 HTTP 库。与以前的 HTTP 库相比,这个库更高效、更安全、更快。它还提供了一些额外的功能,如类型化请求、可测试性和响应对象。

支持日期、货币和国际化数字管道。

早期版本的 Angular 的结果不一致,完全依赖于浏览器来获取数字、日期和货币的格式。

随着 Build Optimizer 的引入,应用程序速度得到提高,构建大小得到优化。

  • 在模板中验证类型
  • 更好的排列。编译器使用 TypeScript 转换,这是 TypeScript 2.3 及更高版本的新功能。
  • Zone 速度增强
  • 新路由生命周期中的事件

Angular 6

此版本的 Angular 与 Angular CLI 6 和 Material 6 一起于 2018 年 5 月发布。以下是 Angular 6 的一些功能:

  • 更新的 Angular CLI (Command Line Interface):Angular 6 添加了几个新命令,包括 ng-update,用于从早期版本升级到当前版本,以及 ng-add,用于快速向应用程序添加功能。
  • 组件开发工具包 (CdK) 已更新,无需 Angular Material 库即可创建自定义 UI 元素。
  • 多个验证器:这基本上是一种在表单上检查用户提交数据的方法。
  • 使用 Reactive JavaScript 模块 RxJS 对服务进行 Tree Shaking:服务现在可以使用 tree shaking 来移除不必要的代码。换句话说,如果代码未在程序中使用或引用,它将被从最终的 bundle 中移除。

Angular 7

Angular 7 于 2018 年 10 月发布。以下是 Angular 7 的一些功能。

  • 命令行界面 (CLI) 输入:CLI 提示的版本 7.0.2 已更新以支持 Angular 7。新发布的 Angular CLI 版本在用户执行 ng add @angular/material 或 ng new 等常用命令时会进行提示。
  • 应用程序性能:与早期版本的 Angular 应用程序相比,Angular 7 应用程序速度明显更快。此版本旨在尽可能减小应用程序的尺寸,而不仅仅是使其变小。
  • Bundle 预算:使用 Angular 7,开发人员现在可以为他们的 bundle 设置一个大小限制。
  • 软件包预算的默认配置将 2 MB 设置为下限,5 MB 设置为上限。开发人员还可以根据需要调整这些选项。减小 bundle 大小可以提高应用程序的性能。
  • Angular 编译器:此更新的编译器提供了一个 8 阶段的预编译。使用 Angular 兼容性编译器 (NGCC) 编译的 Node 模块将被 NGCC (Angular 兼容性编译器) 转换为使用 TSC 编译器转换器 (NTSC) 创建的 Node 模块。此外,此编译器更新允许 Ivy 渲染引擎使用这种“旧版”包。

Angular 版本控制

Angular

版本号表示发布的变化量。这种语义化版本控制的应用有助于您理解更新到新版本可能产生的后果。Angular 版本号有三个部分。它们按顺序排列:

  • 主要
  • 次要
  • PATCH

例如,版本 6.3.7 表示补丁版本 7、次要版本 3 和主版本 6。版本号的增加取决于发布中包含的修改数量。

主版本发布

这些更新预计将包含一些(但很少)开发者支持,并包含重要的功能。在升级到新的主版本时,您应该更新脚本、重构代码、运行更多测试并熟悉新的 API。

次要版本发布

次要版本发布中包含较新、较小的新功能。所有次要版本都与早期版本兼容。更新不应需要任何开发者协助,但您可以选择修改您的应用程序和库以开始使用包含的新功能、API 和能力。通过增加支持的版本,我们在次要版本中更新对等依赖项,但我们不强制项目更新这些依赖项。

补丁版本发布

补丁版本发布是低风险的发布,用于修复 bug。更新期间不预期任何开发者协助。

如果您在同一主版本内更新,您可以直接升级到目标版本,而无需经过任何中间版本。建议在从一个主版本更新到另一个主版本时完成所有主版本。

支持策略

所有主版本都支持 18 个月。有 6 个月的积极支持期,在此期间发布定期更新和补丁,以及 12 个月的长期支持 (LTS) 期,在此期间仅发布关键修复和安全补丁。

下表显示了仍在支持中的 Angular 版本的状态。为了从安全改进、新功能和趋势中受益,保持软件更新到最新版本至关重要。

但是,由于可能存在需要修改代码的破坏性更改,因此在升级到新的 MAJOR 版本之前,应查阅官方迁移文档。

结论

总而言之,Google 维护着强大的在线应用程序框架 Angular,该框架根据语义化版本控制 (SemVer) 指南进行版本控制。模型宽泛的多种组成部分是 MAJOR、MINOR 和 PATCH,它们分别代表主要更改、小幅添加和 bug 修复。

建议您将 Angular 应用程序更新到最新版本,以从新功能、改进和安全更新中受益。在更新到新的主版本之前,您应该查阅真实的迁移手册,以处理您代码中可能存在的破坏性更改。


下一个主题CRUD 示例