Angular小博客

分享让你更聪明

[译2020]Angular 版本 11 现已推出

浏览:3次 日期:2024年10月20日 18:50:53 作者:admin

欢迎使用 Angular 版本 11。

版本 11.0.0 现已发布,我们为各地的 Angular 开发人员提供了一些很棒的更新。此版本对整个平台进行了更新,包括框架、CLI 和组件。让我们深入了解吧!

这个版本有什么内容?

Byelog行动的更新

当我们分享Angular 的路线图时,其中一项是“Operation Byelog”,我们致力于投入大量的工程工作来分类问题和 PR,直到我们清楚地了解更广泛的社区需求。现在我们可以报告,最初的目标已经完成!我们已经对所有三个单一存储库中的所有问题进行了分类,并将在报告新问题时继续这一努力。

这是我们的承诺:今后报告的所有新问题将在两周内进行分类。

在此过程中,我们解决了路由器表单中的一些常见问题

另外,我们已经关闭了第三个最受欢迎的问题

现在,我们正在计划接下来的步骤来支持 Angular 社区。我们将继续分类和解决问题,并努力改进接受社区贡献的流程。

自动内联字体

为了通过加快首次内容绘制的速度来使您的应用程序更快,我们引入了自动字体内联。在编译期间,Angular CLI 将下载并内联应用程序中正在使用和链接的字体。我们在使用版本 11 构建的应用程序中默认启用此功能。要利用此优化,您所需要做的就是更新您的应用程序!

组件测试工具

在 Angular v9 中,我们引入了组件测试工具。它们提供了强大且清晰的 API 界面来帮助测试 Angular Material 组件。它为开发人员提供了一种在测试期间使用支持的 API 与 Angular Material 组件进行交互的方法。

随着版本 11 的发布,我们为所有组件提供了线束!现在开发人员可以创建更强大的测试套件。

我们还包括性能改进和新的 API。并行函数允许开发人员并行运行与组件的多个异步交互,从而使测试中的异步操作变得更加容易。通过在单元测试中禁用自动变更检测, manualChangeDetection函数使开发人员能够对变更检测进行更细粒度的控制。

有关这些 API 和其他新功能的更多详细信息和示例,请务必查看Angular Material Test Harnesses 的文档

改进的报告和日志记录

我们对构建器阶段报告进行了更改,使其在开发过程中更加有用。我们引入了新的 CLI 输出更新,以使日志和报告更易于阅读。

更新的语言服务预览

Angular 语言服务提供了有用的工具,使 Angular 开发变得高效且有趣。当前版本的语言服务基于 View Engine,今天我们来抢先了解一下基于 Ivy 的语言服务。更新后的语言服务为开发者提供了更强大、更准确的体验。

现在,语言服务将能够像 TypeScript 编译器一样正确推断模板中的泛型类型。例如,在下面的屏幕截图中,我们能够推断出可迭代对象的类型为字符串。

Angular 语言服务推断模板中的可迭代类型

这个强大的新更新仍在开发中,但我们希望分享一个更新,因为我们正在为即将发布的版本中的完整发布做准备。

更新的热模块更换 (HMR) 支持

Angular 提供了对 HMR 的支持,但启用它需要配置和代码更改,这使得它不太理想地快速包含在 Angular 项目中。在版本 11 中,我们更新了 CLI,以允许在使用 ngserve 启动应用程序时启用 HMR。首先,运行以下命令:

ng serve --hmr

本地服务器启动后,控制台将显示一条消息,确认 HMR 已激活:

注意:开发服务器启用了热模块更换 (HMR)。

有关使用 HMR for webpack 的信息,请参阅https://webpack.js.org/guides/hot-module-replacement 。

现在,在开发过程中,组件、模板和样式的最新更改将立即更新到正在运行的应用程序中。所有这些都不需要刷新整页。保留输入表单的数据以及滚动位置,从而提高开发人员的工作效率。

更快的构建

我们通过对一些关键领域进行更新来加快开发和构建周期。

实验性 webpack 5 支持

现在,团队可以选择使用 webpack v5。目前,您可以尝试使用模块联合。未来,webpack v5 将为以下内容扫清道路:

支持是实验性的并且正在开发中,因此我们不建议选择用于生产用途。

想尝试 webpack 5 吗?要在您的项目中启用它,请将以下部分添加到您的 package.json 文件中:

"resolutions": {
     "webpack": "5.4.0"
}

目前,您需要使用纱线来测试这一点,因为 npm 尚不支持分辨率属性。

语法检查

在 Angular 的早期版本中,我们提供了 linting 的默认实现 (TSLint)。现在,项目创建者已弃用 TSLint,他们建议迁移到 ESLint。 James Henry与开源社区的其他人一起通过typescript-eslint 、 angular-eslinttslint-to-eslint-config开发了第三方解决方案和迁移路径!我们一直在密切合作,以确保 Angular 开发人员顺利过渡到受支持的 linting 堆栈。

我们在版本 11 中弃用了 TSLint 和 Codelyzer。这意味着在未来版本中,检查 Angular 项目的默认实现将不可用。 ng lint命令的功能与ng deploy类似,建议开发人员可以将推荐的实现添加到他们的项目中。

浏览器支持

在此更新中,我们将删除对 IE9/IE10 和 IE 移动版的支持。 IE11 是 Angular仍支持的唯一 IE 版本。我们还删除了已弃用的 API ,并将一些 API 添加到弃用列表中。请务必检查这一点,以确保您使用的是最新的 API 并遵循我们推荐的最佳实践。

路线图

我们还更新了路线图,以便让您了解我们当前的优先事项。本文中的一些公告是路线图中正在进行的项目的更新。这反映了我们逐步推出更大工作的方法,并允许开发人员提供早期反馈,我们可以将其合并到最终版本中。

我们与 Angular 社区的Lukas Ruebbelke合作更新了一些项目的内容,以更好地反映它们为开发人员提供的价值。

如何更新以获得版本 11

当您准备好运行以下命令来更新 Angular 和 CLI 时:

ng update @angular/cli @angular/core

前往update.angular.io查找有关更新的详细信息和指南。我们始终建议一次升级一个主要版本,以获得最佳的更新体验。

我们希望您喜欢此功能更新,并务必在此处或Twitter上告诉我们您的想法!

文章来源地址:https://blog.angular.dev/version-11-of-angular-now-available-74721b7952f7