我们正在寻找愿意尝试新事物(有一些粗糙的边缘)并愿意与我们分享他们的经验的开发人员。如果您有兴趣,请按照以下步骤操作,并让我们知道您遇到了哪些问题。
此预览版主要旨在验证向后兼容性,因为性能和捆绑包大小的改进仍在进行中。
该计划是确保大多数 Angular 应用程序在没有重大更改的情况下继续工作,然后专注于利用底层框架的改进。
通过 Ivy 的向后兼容性,我们已经实现了重要的稳定性里程碑。根据我们对 Google 内部数千个测试套件的测试(97% 的测试套件在 Google 通过),我们有理由相信大多数应用程序无需更改整个生态系统即可运行。我们正在解决几个已知问题,但我们预计还会有很多较小的问题需要解决。
现在我们已经达到了这一里程碑,我们需要您的帮助来识别和报告这些问题。选择预览版,尝试一下,然后让我们知道有什么问题。
对于向我们报告的问题,我们将采取三项措施:
我们仍在致力于改进包大小和运行时性能。当您今天更新时,您还不会看到所有这些好处。
我们目前看到生成的代码和 Hello World 应用程序更小,但在某些情况下 Angular 本身更大。以下是我们从应用程序升级到 Ivy 中看到的一些早期结果:
ng new my-app @ 8.1.0-next.1
Before Ivy
Main Bundle (135 KiB)
With Ivy Preview
Main Bundle (122 KiB)
Real World Angular @ 8.1.0-next.1
Before Ivy
Main Bundle (358 KiB)
Lazy Chunks (7.7–34 KiB)
With Ivy Preview
Main Bundle (400 KiB)
Lazy Chunks (3.3–27 KiB)
我们现在正在努力减少框架大小,以便在将 Ivy 设为默认值之前,几乎在每种情况下都减少了实际应用程序的捆绑包大小。由于我们提供了新的引导方式,这将从您的主包中剔除更多 Angular,因此还可能带来额外的好处。
随着我们越来越接近为所有应用程序默认启用 Ivy,我们将在接下来的几个月中发布更多有关实际应用程序的性能和捆绑包大小里程碑的公告。
您的应用程序应该像现在一样构建和运行。您会注意到新编译器和指令集带来的以下好处:
ng new
缩小了 10%,生成的代码大小应该减少约 25%我们还修复了许多长期存在的错误,改进了令人困惑的行为,并解决了一些性能问题。
我们在这里发布了指南:https: //angular.io/guide/ivy
每当使用 Ivy 时,你应该始终从 npm 运行最新版本的 Angular(标记为next
)。我们将在未来几个月内频繁进行更改。您可以使用 ng-update 获取最新版本,如下所示:
ng update @angular/core --next
使用最新版本后,更新src/tsconfig.app.json
以在顶级angularCompilerOptions
键下包含"enableIvy": true
。
当您运行ng build
时,我们将对您的 node_modules 文件夹进行 Angular 兼容性编译( ngcc
),并将所有元数据文件更新为我们可以转换为 Ivy 指令的格式。
我们正在迅速接近这样一个未来,即 Ivy 的优势自动且普遍适用于所有开发人员,并且 Ivy 项目已得出结论。同时,打开一个问题,或联系devrel@angular.io ,向我们提供有关您选择加入预览体验的反馈。
文章来源地址:https://blog.angular.dev/its-time-for-the-compatibility-opt-in-preview-of-ivy-38f3542a282f