首页 > 解决方案 > --indexed-ram-bundle 对 React Native 捆绑的意义

问题描述

最近我开始使用带有内联需求的 RAM 包来获得更好的 React Native 启动性能。为此,我几乎只是遵循了官方指南。它工作正常,但在指南的 Android 部分中,他们说:

如果要使用单个索引文件,请在 Android 上使用以下行:

project.ext.react = [
  bundleCommand: "ram-bundle",
  extraPackagerArgs: ["--indexed-ram-bundle"]
]

有什么意义--indexed-ram-bundle?为什么我想要或不想拥有单个索引文件?

我看到默认情况下 iOS 似乎使用单个索引文件,而 Android 将创建一组文件。

标签: react-nativereact-native-androidmetro-bundler

解决方案


虽然无法非常详细地确定为什么要--indexed-ram-bundle为 Android做,但 Metro 文档确实提供了一些信息:

索引 RAM 包

这种格式将包组成为二进制文件......这种结构对于能够一次将所有代码加载到内存中的环境是最佳的......这种捆绑通常由 iOS 使用。

文件 RAM 包

每个模块都存储为一个文件,名称为js-modules/${id}.js ... 这种捆绑通常由 Android 使用,因为包内容是压缩的,并且访问压缩文件的速度要快得多。如果改为使用索引格式,则应立即解压缩所有捆绑的文件以获取相应模块的代码。


推荐阅读