每周都会有人问我:“Ivy 什么时候可以发布”?这篇文章将解答有关 Angular 8.0 版本的最新进展以及 Ivy 的定版和发布计划。
我们计划将 Ivy 作为即将在今年第二季度发布的 Angular 8.0 的一部分,并且是可选预览。
Angular 8.0 为我们带来了哪些东西?
虽然团队的大部分人在忙于开发 Ivy,但也在努力为 Angular 8.0 版推出一些更新。需要注意的是,这些计划可能会在最终版本发布之前发生变化。
JavaScript 差异化加载
作为构建过程的一部分,CLI 将会生成遗留(ES5)和现代(ES2015+)JavaScript 捆绑包,并在客户端进行差异化加载,以提高现代浏览器的加载速度和 TTI。这项工作主要是基于 Manfred Steyer 的ngx-build-modern项目,并且与 Manfred 合作开发。
可选的预览版 Ivy
预览如何在应用程序中使用 Ivy,并向我们提供反馈,这样我们才能更好地将必要的变更和改进纳入到最终版中。
Angular Router 向后兼容性
我们正在添加向后兼容模式,以简化大型项目的升级路径。用户可以使用 $route API 延迟加载 AngularJS 应用程序的部分内容,从而可以更容易地迁移到 Angular。
改进的 Web Worker 捆绑
Web Worker 可用来编写运行在主线程之外的代码,以此来提高应用程序的运行速度和并行性。我们正在为 CLI 添加对 Web Worker 的捆绑支持,解决开发人员在这方面的需求。
可选的使用信息分享
为了更好地满足社区的需求,我们在 CLI 中添加了可选的遥测功能。在获得用户同意的情况下,我们将收集有关命令和构建速度等方面的信息。这方面的信息知道得越多,我们就能做得越好。
依赖更新
与往常一样,我们也在更新对 TypeScript、RxJS 和 Node 等工具的依赖,以便与生态系统的其他部分保持同步。
Ivy 会是什么样子?
我们的目标是在 Angular 8.0 中包含可选的预览版 Ivy。如果你对 Ivy 还不熟悉,可以看一下 Kara 在谷歌 I/O 2018 大会上如何谈论 Ivy:
https://youtu.be/jnp_ny4SOQE?t=1320
可选的预览版 Ivy 可以让你在项目中切换 Ivy 和 View Engine,具体的操作细节将在即将推出的 beta 版本中提供。如果启用了这个选项,将会使用 Ivy 运行时指令而不是 ViewEngine 运行时来构建应用程序。应用程序将使用 Ivy 编译器构建,而且通过使用我们的兼容性编译器,来自 Angular 或其他第三方的依赖项仍然可以继续使用。预览版可以识别出与依赖项相关的问题,并帮助我们改进兼容性。
可选的预览版将带来如下内容:
生成更易于阅读和调试的代码;
更快的重建速度;
改进的有效载荷大小;
改进的模板类型检查;
非常棒的向后兼容性。
Ivy 并不一定可以用于所有的场景。某些功能(如国际化或 Angular Universal)在预览版中可能还不具备完全的兼容性。在预览版中,语言服务将无法正常运行。
这个预览版专注于在不重写应用程序的情况下让开发人员可以将应用程序切换到使用 Ivy 编译器和运行时指令。有很多特定于 Ivy 的 API 将被添加到我们的公共 API 中,作为 Angular Labs 和未来稳定版本的一部分。
什么时候可以准备好?
我们现在无法承诺一个固定的时间表,这个计划还有可能会发生变化。现在的计划是在 2019 年 4 月进入 RC,并在一个月后发布 Angular 8.0。我们将在 Angular 8.0 中使用 Ivy 可选预览来验证我们对向后兼容性的承诺,可能还需要推出任何必要的自动迁移工具。
我们希望将 Ivy 作为今年秋季下一个主要版本的一部分。由于我们专注于向后兼容性和支持现有应用程序,因此还不打算在 Angular 9 中默认启用 Ivy。
我们真的很希望看到那个在 Angular 9 中推出完整版的 Ivy,为开发人员带来更多的可能性。如果有任何新的进展,我们会继续与大家分享我们的计划。
英文原文:
https://blog.angular.io/a-plan-for-version-8-0-and-ivy-b3318dfc19f7
更多内容,请关注前端之巅。
会议推荐
2019 年 6 月,GMTC 全球大前端技术大会 2019 即将到来。小程序、Flutter、移动 AI、工程化、性能优化…大前端的下一站在哪里?点击下图了解更多详情。
评论