又一天,又一个伟大的 NativeScript 版本发布!3.2 版本已经发布(也就是在 npm 上)。请确保使用 npm install -g nativescript
更新以获取最新版本。
以下是此版本的亮点
iOS 11(也许还有新的 iPhone 8?)即将到来!它将非常火爆,很快就会出现在每台 iOS 设备上。但更重要的是——您将能够在其上运行 NativeScript 应用程序。事实上,您甚至可以立即尝试,因为在 3.2 版本中,我们正式支持 Xcode 9 和 iOS 11。
沿着这些思路,我们对与构建过程相关的 NativeScript CLI 做了一些改进。构建输出现在简洁得多——打印相关信息并减少混乱。我们还利用了 Xcode 的 allowProvisioningUpdates 选项,该选项将在提供 team-id 时自动创建团队管理的配置文件。
接下来,您现在可以在使用 webpack 构建时使用 Web Worker!您可以使用 nativescript-worker-loader 在构建 webpack 时加载 Web Worker 脚本。此加载器应与 NativeScriptWorkerPlugin 一起使用。有关如何设置和使用它的详细说明,请参阅 nativescript-worker-loader 自述文件。
自 3.1.0 版本发布以来,我们修复了 50 多个错误和问题!以下是一些值得注意的修复
如果您阅读过 Panayot Cankov 关于性能的博文,您可能会记得在 V8 GC 传递期间触发的 MarkReachableObjects() 例程,以及它可能需要超过 0.5 秒才能完成(在 Angular 中甚至可能长达 1 秒)。基本上,它所做的是确保 Java 实例在 JavaScript 端仍然需要时不会被 Java GC 过早地回收。我们注意到,这很少需要——只有在没有其他对 Java 实例的引用并且作用域是唯一应该保持引用的东西的情况下才会出现。事实上,tns-core-modules 中的代码编写方式使其不依赖于作用域来保留这些 Java 实例的引用。
我们引入了一个标志,您可以将其设置为禁用 MarkReachableObjects。您只需在 app/package.json 中添加以下内容即可
{
"android": {
"markingMode": "none"
}
}
请注意,此标志是**高度实验性的**。尽管我们已使用相当多的应用程序对其进行了测试,并且我们非常有信心它不会导致 tns-core-modules 出现问题,但它可能会由于您正在使用的某些应用程序代码或插件而导致意外崩溃。
我们希望您喜欢这个新版本,并且如果您遇到任何问题,请在我们的 Github 问题页面 上告知我们!同时,请务必查看 NativeScript 路线图,因为我们很快就会更新它以展示未来几个版本中将发布的内容。快乐 NativeScripting!