[译2019]Angular8.0版本和Ivy的计划
“Ivy什么时候准备好?”这是我们每周都会被问到的问题。以下是关于 8.0 版本进展情况的更新,以及我们发布和最终确定 Ivy 的计划。
我们计划将 Ivy 作为选择加入预览版,作为今年第二季度发布的 8.0 版本的一部分。
8.0 版本有哪些内容?
虽然团队的大多数成员都在专注于 Ivy,但我们正在为 8.0 版本进行一些更新。请记住,这些计划在最终发布之前可能会发生变化。
- 现代 JavaScript 的差异化加载 作为构建过程的一部分,CLI 将开始生成旧版 (ES5) 和现代 (ES2015+) JavaScript 捆绑包,这些捆绑包将在客户端进行差异化加载,以提高现代浏览器的加载速度和交互时间 (TTI)。这项工作基于 Manfred Steyer 及其项目ngx-build-modern并与之合作构建。
- 选择加入常春藤预览 预览您的应用程序如何与 Ivy 配合使用,并向我们提供反馈,以便我们将必要的更改和改进纳入完整版本中。
- Angular 路由器向后兼容性 我们添加了向后兼容模式,可以简化大型项目的升级路径。通过允许使用
$routeAPI 延迟加载部分 AngularJS 应用程序,团队可以更轻松地迁移到 Angular。 - 改进的 Web Worker 捆绑 Web Worker 是编写在主线程之外运行的代码的好方法,可以提高应用程序的速度和并行性。我们正在 CLI 中添加对 Web Worker 的捆绑支持,以满足开发人员的这一常见请求。
- 选择加入使用共享 为了更好地满足社区需求,我们在 CLI 中添加了选择加入遥测功能。在您选择同意的情况下,我们将开始收集有关所使用的命令和构建速度等的匿名信息。关于开发人员如何使用 Angular 的信息越多,我们就能做得越好。
- 依赖项更新 与往常一样,我们正在更新对 TypeScript、RxJS 和 Node 等工具的依赖关系,以与生态系统的其他部分保持同步。
Ivy 的推出会是什么样子?
在 8.0 版本中,我们的目标是提供 Ivy 的选择加入预览。如果您不熟悉 Ivy,请观看Kara 在 Google I/O 2018 上谈论 Ivy 。
选择加入预览将允许您在项目中的Ivy和View Engine构建和渲染管道之间切换。有关如何执行此操作的详细信息将在即将推出的测试版本中提供。更改此设置会将您的应用程序切换为使用 Ivy 运行时指令而不是 ViewEngine 运行时构建。您的应用程序将使用 Ivy 编译器构建,并且您使用的来自 Angular 或其他第三方的任何依赖项都应该继续工作,因为我们将通过我们的兼容性编译器运行它们。预览将使您能够识别依赖项的任何问题,并帮助我们提高兼容性。
在选择加入预览中,您可以期待:
- 生成的代码在运行时更易于阅读和调试
- 更快的重建时间
- 改进的有效负载大小(实际应用程序应该会看到一些大小改进,但计划进行更多改进)
- 改进的模板类型检查
- 良好的向后兼容性
Ivy 不会为所有用例做好准备。某些功能(例如 i18n 或 Angular Universal)在预览版中可能尚未完全兼容。我们的语言服务在 Ivy 预览期间将无法运行。
此选择加入预览的重点是将应用程序移至 Ivy 编译器和运行时指令,而不要求开发人员重写其应用程序。有许多 Ivy 特定的 API 稍后将作为 Angular Labs 和未来稳定版本的一部分添加到我们的公共 API 中。
什么时候一切都准备好?
我们无法承诺固定的时间表,并且该计划可能需要更改,但我们的计划是在 2019 年 4 月进入 RC,并在大约一个月后发布 8.0.0 并全面上市。我们将在 8.0.0 中使用 Ivy 的选择加入预览来验证我们关于向后兼容性的承诺,并开发我们可能需要的任何自动迁移工具。
我们希望在今年秋天的下一个主要版本中为所有人启用 Ivy。由于我们专注于向后兼容性和支持现有应用程序,因此我们不打算在版本 9 中选择退出 Ivy。
我们对 Ivy 在版本 9 中的全面推出感到非常兴奋,它为开发人员和我们的团队打开了许多大门。一旦我们在 Ivy 推出过程中取得进一步进展,我们将分享我们的新开发者和用户体验、功能和 API 的计划。
请继续关注此博客、 twitter ,或者访问 ng-conf以了解更多信息。
文章来源地址:https://blog.angular.dev/a-plan-for-version-8-0-and-ivy-b3318dfc19f7