兼容 vs. 性能,寻求舒适的构建姿势

iOS / Android / Web ...
React Native 0.24 / 0.25 / 0.26 ...

如果把“前端”定义为“以交互为核心的程序设计与开发”,那么兼容性问题始终是一个沉重的负担。

IE6 的绝对霸主地位曾经是 Browser/Server 架构击败 Client/Server 架构的关键因素。到了 PC 时代后期,浏览器市场群雄并起,兼容性问题曾经让很多前端开发人员心力交瘁。所幸有矛就有盾,以 jQuery 为代表的前端框架的流行,挽救了大家的信心,不至于被戳得支离破碎。进入 Mobile 时代,前端工程师们所面对的兼容性问题,又远比 PC 时代更为复杂和严峻。

React Native 的出现,使得 iOS 和 Android 两大移动操作系统的开发阵营之间拥有了新的共同语言,但是各自的表述方法仍有相当的差异。同时,React Native 本身仍在快速迭代中,三日不见,刮目相看。对于追求刺激的家伙们而言,当然是高潮迭起,新鲜感爆棚;可对于被繁重的业务需求约束着的开发团队来说,如此喜新厌旧的代价与风险是显而易见的。Moles Packer 既是一个 React Native 项目构建工具,又兼以跨平台前端解决方案 Moles 工具链的一环之身份,在兼容性问题的考量上,尤其需要妥协,不落偏颇。

Moles Packer 目前采取的策略可以归纳为:
  输出 = 非兼容的公包(common bundle) + 兼容的业务包(business bundles)

在这里,“兼容”的范畴包括以下两个方面:

  • 跨平台,即兼容 iOS / Android / H5
  • 适用于不同版本的 React Native 运行时环境

直白地说,你需要为不同的平台、不同的 React Native 进行时环境创建单独的公包,在这些公包的支持下,通过 Moles Packer 构建的业务包可以适用于不同的平台及不同版本的 React Native 运行时环境。1

1. React Native 并不支持 H5 平台,业务包在 H5 平台是通过 Moles Webridge 提供的界面运行的。

results matching ""

    No results matching ""