使用 Hermes
Hermes 是一个为 React Native 优化的开源 JavaScript 引擎。对于许多应用来说,与 JavaScriptCore 相比,使用 Hermes 将带来启动时间更快、内存使用更少、应用体积更小的优势。Hermes 默认由 React Native 使用,无需额外配置即可启用。
捆绑的 Hermes
React Native 附带了 捆绑版本 的 Hermes。每当我们发布新版本的 React Native 时,都会为您构建一个 Hermes 版本。这将确保您使用的是与您当前使用的 React Native 版本完全兼容的 Hermes 版本。
此更改对 React Native 用户完全透明。您仍然可以使用本页描述的命令禁用 Hermes。您可以在本页阅读有关技术实现的更多信息。
确认正在使用 Hermes
如果您最近从头开始创建了一个新应用,您应该在欢迎视图中看到 Hermes 是否已启用。

JavaScript 中将提供一个名为 HermesInternal
的全局变量,可用于验证是否正在使用 Hermes。
jsx
const isHermes = () => !!global.HermesInternal;
注意
如果您使用非标准方式加载 JS 包,则 HermesInternal
变量可能可用,但您并未在使用高度优化的预编译字节码。请确认您正在使用 .hbc
文件,并按照下文详述的方式对使用前后进行基准测试。
要查看 Hermes 的优势,请尝试对您的应用进行发布版本构建/部署以进行比较。例如,从项目根目录执行:
- Android
- iOS
- npm
- Yarn
shell
npm run android -- --mode="release"
shell
yarn android --mode release
- npm
- Yarn
shell
npm run ios -- --mode="Release"
shell
yarn ios --mode Release
这将在构建时将 JavaScript 编译为 Hermes 字节码,从而提高您的应用在设备上的启动速度。
切换回 JavaScriptCore
React Native 也支持使用 JavaScriptCore 作为 JavaScript 引擎。请按照社区仓库中的说明来选择禁用 Hermes。