返回博客首页
← 所有文章

NativeScript 3.0 今日发布

2017年5月3日 — 作者:Georgi Atanasov

我们非常激动地宣布 NativeScript 3.0 正式发布!3.0 发布候选版本 以来,我们一直在努力修复所有主要问题,并简化迁移到此框架新主要版本的路径。我们在所有存储库中关闭了大约 80 个拉取请求,并升级了数十个插件和应用程序,以确保为我们的用户提供流畅的迁移体验。我们还 准备了一份文档 来描述主要版本升级背后的需求以及新引入的 重大更改

您可以通过运行以下命令来试用新的 3.0 版本:

npm install -g nativescript

...并按照我们记录的 升级说明 升级各个项目。

请务必 注册参加 免费的 NativeScript 3.0 网络研讨会(将于 5 月 17 日举行!),了解有关此版本的全部信息,并抢先了解我们未来产品计划的激动人心的消息。

发布亮点

以下是 NativeScript 3.0 中包含内容的概述

跨平台模块

  • 新的模块 3.0 实现。 3.0 重构基于三个主要支柱
    • 性能改进;
    • 增强的扩展性模型;
    • 在整个跨平台模块实现中更一致的 API。
  • 完全改进的布局测量系统。 在 3.0 之前,布局系统使用 DIP(设备无关像素)。在 3.0 中,所有内容都计算到 DP(设备像素),您可以指定 px 后缀来定义 1-px 宽的边框,例如。
  • 迁移到 TypeScript 2.2 并删除了环境模块,转而使用显式路径解析。

CLI

  • 我们在命令行工具中进行了以下行为更改
    • livesync 命令已删除,取而代之的是 tns run,后者现在会在后台自动执行 livesync --watch
    • plugin find/search 命令已删除,因为它没有使用;
    • emulate 命令现已弃用,其功能已通过 run 命令及其 --emulate 选项公开;
    • run --device <设备标识符> 命令现在会在未启动模拟器的情况下启动一个模拟器。在 3.0 之前,--device 选项仅适用于正在运行的设备。
  • 大量错误修复和内部改进,确保代码库的更好稳定性和可扩展性。

运行时

  • 为 Chrome DevTools 启用网络域。 现在,您可以直接从 Chrome DevTools 中监控应用程序网络流量。这目前适用于内置的 http 模块。对于执行网络请求的第三方模块,必须实现额外的粘合代码以填充网络选项卡。
  • 为 Android 恢复了静态绑定代码生成,而不是直接生成 *.DEX 文件。代码生成方法具有几个主要优势,会影响构建速度、可读性和可维护性。
  • 更新了 Gradle 构建工具。 这将大大加快 Android 构建速度。
  • 改进了 Chrome DevTools 中 Android 的调试体验。 我们对调试期间发生的崩溃和错误进行了多项修复。

请注意,我们决定推迟发布 本地快照构建 功能,因为底层原生构建工具链(即新的 Android SDK 工具和 Xcode 8.3)发生了重大更改。虽然快照功能对于进一步优化 Android 应用程序的加载时间很重要,但我们认为不应延迟 3.0 版本的发布,并将很快以增量更新的形式提供此功能。

启用新版本

除了标准的新 npm 包更新 npm install -g nativescript 之外。如果您创建了一个新的 3.0 项目,则所有依赖项将自动设置为最新版本,因为将使用更新的 3.0 模板。要更新现有项目,您需要执行以下步骤

  1. 更新项目的 tns-core-modules 依赖项
    npm i -S [email protected]
  2. 对于 NativeScript Angular 项目,请将 nativescript-angular 插件更新到 3.0.0
    npm i -S [email protected]
  3. 由于 NativeScript 3.0 内置支持 Angular 4,因此也需要更新来自 @angular 范围的所有包
    
        npm i -S @angular/common@latest @angular/compiler@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest  @angular/router@latest
        npm i -S zone.js@latest
        npm i -S rxjs@latest
        
  4. 如果您的项目使用 TypeScript,则需要更新 nativescript-dev-typescript 插件,它会自动更新您的 TypeScript 配置
    npm i -D nativescript-dev-typescript@latest

有关所有重大更改以及如何迁移现有代码的完整列表,您可以参考 此 wiki 页面。如果您是插件作者,我们还准备了 此文档 指导您完成 3.0 的插件迁移步骤。

WebPack 与 Android 快照

对于 3.0,我们为 Android Angular 项目关闭了默认的快照功能。这主要是为了 Angular 项目,因为影响加载时间的主要优势是 AoT 功能(在现有快照体系结构中不存在),该功能通过我们的 nativescript-dev-webpack 插件启用。

WebPack 是优化 NativeScript Angular 应用程序的推荐方法。一旦我们发布本地快照构建,您的应用程序将能够同时利用 WebPack、AoT 和 Android 的快照。有关在 NativeScript 应用程序中启用 WebPack 的更多信息,请参阅 本文档文章

分享您的反馈

我们有超过 600 个 Jenkins 作业持续运行,以确保框架的稳定性和质量,但没有软件是完美的:)。请 告知我们您在使用新版本时遇到的任何问题,以便我们尽快修复!

更新

在“启用新版本”部分添加了更多有关将现有项目升级到 3.0 的信息。