This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

配置 JS 引擎

编辑页面

一份关于在 Expo 项目中为 Android 和 iOS 配置 JS 引擎的指南。


JavaScript 引擎执行你的应用代码,并提供诸如内存管理、优化和错误处理等各种功能。默认情况下,Expo 项目使用 Hermes 作为 JavaScript 引擎。也可以在 Android 和 iOS 平台上切换到其他引擎,例如 JSC 或 V8。不过,Web 端不行,因为 JavaScript 引擎已包含在 Web 浏览器中。

通过 app 配置配置 jsEngine

我们推荐使用 Hermes,因为它专为 React Native 应用构建并针对其进行了优化,同时还提供了最佳的调试体验。如果你熟悉不同 JavaScript 引擎之间的权衡,并希望从 Hermes 切换到其他引擎,则可以在应用配置中的 jsEngine 字段指定应用所使用的 JavaScript 引擎。默认值为 hermes

如果你想改用 JSC,请在 app 配置中设置 jsEngine 字段:

app.json
{ "expo": { "jsEngine": "jsc" } }
在裸 React Native 项目中的用法

要在裸 React Native 项目中更改 JavaScript 引擎,请更新 android/gradle.propertiesios/Podfile.properties.json 中的 expo.jsEngine 值。

需要强调的是,更改 JS 引擎后,你需要使用 eas build 重新编译开发构建,才能正常工作。

使用 V8 引擎

要使用 V8 引擎,你需要安装 react-native-v8,这是一个可选安装的软件包,为 React Native 增加 V8 运行时支持。你可以通过运行以下命令来安装它:

Terminal
npx expo install react-native-v8 v8-android-jit

请确保从 app 配置中移除 jsEngine 字段。

与 Expo Prebuild 一起使用

安装后运行 npx expo prebuild -p android --clean,以重新进行 prebuild。

在特定平台上切换 JavaScript 引擎

如果要在某个特定平台上使用不同的引擎,可以在顶层设置 "jsEngine" 值,然后在 "android""ios" 键下用不同的值覆盖它。平台中指定的值将优先于通用字段。

app.json
{ "expo": { "jsEngine": "hermes", "ios": { "jsEngine": "jsc" } } }