配置 JS 引擎
编辑页面
一份关于在 Expo 项目中为 Android 和 iOS 配置 JS 引擎的指南。
For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.
JavaScript 引擎执行你的应用代码,并提供诸如内存管理、优化和错误处理等各种功能。默认情况下,Expo 项目使用 Hermes 作为 JavaScript 引擎。也可以在 Android 和 iOS 平台上切换到其他引擎,例如 JSC 或 V8。不过,Web 端不行,因为 JavaScript 引擎已包含在 Web 浏览器中。
通过 app 配置配置 jsEngine
从 SDK 52 开始,Expo Go 中无法更改 JS 引擎(仅可使用 Hermes 引擎)。使用此自定义功能需要一个 开发构建。
我们推荐 Hermes,因为它是专为 React Native 应用设计并优化的,而且它提供了最佳的调试体验。如果你熟悉不同 JavaScript 引擎之间的权衡,并且希望不再使用 Hermes,那么 app 配置 中的 jsEngine 字段允许你为应用指定 JavaScript 引擎。默认值是 hermes。
如果你想改用 JSC,请在 app 配置中设置 jsEngine 字段:
{ "expo": { "jsEngine": "jsc" } }
在裸 React Native 项目中的用法
要在裸 React Native 项目中更改 JavaScript 引擎,请更新 android/gradle.properties 和 ios/Podfile.properties.json 中的 expo.jsEngine 值。
需要强调的是,更改 JS 引擎后,你需要使用 eas build 重新编译开发构建,才能正常工作。
使用 V8 引擎
要使用 V8 引擎,你需要安装 react-native-v8,这是一个可选安装的软件包,为 React Native 增加 V8 运行时支持。你可以通过运行以下命令来安装它:
- npx expo install react-native-v8 v8-android-jit请确保从 app 配置中移除 jsEngine 字段。
在特定平台上切换 JavaScript 引擎
如果要在某个特定平台上使用不同的引擎,可以在顶层设置 "jsEngine" 值,然后在 "android" 或 "ios" 键下用不同的值覆盖它。平台中指定的值将优先于通用字段。
{ "expo": { "jsEngine": "hermes", "ios": { "jsEngine": "jsc" } } }