上周,Angular 团队发布了全新的 Angular 8,今天我们很高兴地宣布 NativeScript 现在支持此最新更新 🎉。
Angular 8 带来了许多内部变化,并且是未来 Ivy 实现的垫脚石,使其成为 Angular 历史上一个重要的里程碑。有关所有更改的完整列表,您可以阅读 这篇博文。
在 Angular 8.0.0 中,Angular 团队发布了一个框架,其中包含一个名为 enableIvy
的实验性可选标志的 Ivy,您可以在 angularCompilerOptions
中设置此标志。由于其当前实现状态,启用 Ivy 的好处并不大。长话短说,当前的 NativeScript 插件没有以适当的格式(APF)发布,这意味着 Ivy 的 tree-shaking 功能不可用。NativeScript 团队与 Angular 团队紧密合作开发 Ivy 实现,我们预计当它准备就绪并可用时,我们将能够提供首日支持。敬请关注!
查看 这篇文章 以获取有关 Ivy 的更多信息。
让我们看看如何更新您的 NativeScript-Angular 应用以利用这些优化。
为了将您的项目更新到最新的 Angular 8.0.0,您只需执行以下简单步骤
nativescript-angular
插件 npm i nativescript-angular@latest --save
并运行包提供的自动依赖项更新脚本 ./node_modules/.bin/update-app-ng-deps
。nativescript-dev-webpack
包 npm i nativescript-dev-webpack@latest --save-dev
并运行包提供的自动依赖项更新脚本 ./node_modules/.bin/update-ns-webpack --deps --configs
(请注意,--configs
将更新您的 webpack.config.js
,建议在每个新版本的 nativescript-dev-webpack
中更新该配置,但如果需要,您可以将其删除)。nativescript-dev-typescript
包 npm i nativescript-dev-typescript@latest
您快完成了!剩下的唯一事情是检查您的项目是否需要迁移任何 变更日志中描述的重大更改。您可以通过使用 tsc
触发项目的 TypeScript 编译来找出这一点。如果您很幸运,终端不会显示任何错误,并且您会很高兴地知道您已准备好开始使用 Angular 8.0.0。如果您看到任何关于 ViewChild
的错误,只需遵循以下迁移示例。
在以前使用带有一个参数的 @ViewChild
的任何地方,您现在都必须提供一个带有 static
属性的第二个参数,该属性设置为 true
或 false
之前的代码
import { ElementRef } from "@angular/core";
@ViewChild("myElement") myElement: ElementRef;
迁移后的代码
import { ElementRef } from "@angular/core";
@ViewChild("myElement", { static: false }) myElement: ElementRef;
目前我们知道 @nativescript/schematics
不适用于 Angular 8.0.0。我们正在积极进行更新!
@angular/http
包已弃用,我们计划在 nativescript-angular
的未来版本中完全删除它。
对于大多数用户来说,升级到 Angular 8 应该是无缝的。您可以参考我们的 变更日志 以获取已更改内容的完整列表,如果您遇到问题,请在我们的 问题跟踪器 上告知我们。
欢迎在评论中告诉我们您对这个最新的 Angular 更新的看法。