返回博客首页
← 所有文章

7.0 新闻 ~ 与 JS 生态系统(es5 > es2017+)一起推动 NativeScript 发展

2020年8月31日 — 作者:技术指导委员会 (TSC)

NativeScript 一直走在技术的前沿。TypeScript 在其初期就被采用,因为它显然对于在整个框架中提供强大的类型检查非常重要,因为它提供了与 Swift、Objective C、Java 和 Kotlin 等强类型语言的直接交互。现在,底层 JavaScript 引擎完全支持 ES2017+,团队一直渴望将标准从 ES5 提升到 ES2017。

版本 7 中,对 ES2017 作为有效输出目标的完全支持已经实现,现在是框架的默认设置。此外,鉴于 iOS 和 Android 引擎都使用相同的最新 v8 引擎(为 NodeJS 和 Chromium 等项目提供支持),现在可以针对更高版本进行构建。

以下是此举带来的几个特别棒的优势

  • TypeScript 将不再需要将 await/async 转换为冗余的代码行。因为底层 JavaScript 引擎已经相当长一段时间完全支持 async/await 了。

  • class 指令实际上得到了支持,并且不会被转换为更难调试且性能远不如让引擎为我们完成工作的代码。这将允许您的代码针对更多现代特性,例如新的空值合并运算符可选链

  • 高级树摇动以及单一桶符号管理的简易性。在 7.0 中,所有内容都只需从 @nativescript/core 中获取即可。

https://webpack.js.cn/guides/tree-shaking/

Webpack 2 版本内置支持 ES2015 模块(别名和谐模块)以及未使用的模块导出检测。新的 Webpack 4 版本在此功能的基础上扩展,提供了一种方法,可以通过 "sideEffects" package.json 属性向编译器提供提示,以指示项目中的哪些文件是 "纯" 的,因此如果未被使用,则可以安全地删除。

我们很快就会在另一篇文章中分享关于树摇动的更深入分析。

  • 编译代码的可读性得到提升。

  • 通过简化 NativeScript 符号管理来改进项目维护,从而允许进行更深入的底层重构,而无需处理未来导入路径更改带来的中断。如果将来核心符号确实引入了重大更改,这也允许引入改进的代码迁移脚本。