由于 Hermes(RN +71.0 中)与 React Native Debugger 的兼容性问题,我想在开发中禁用 Hermes,并在生产中自动启用它,并使用 Android/iOS 特定的 ENV 文件。
在
gradle.properties
:
# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
hermesEnabled=true
在
Podfile
:
use_react_native!(
.....
# Hermes is now enabled by default. Disable by setting this flag to false.
# Upcoming versions of React Native may rely on get_default_flags(), but
# we make it explicit here to aid in the React Native upgrade process.
:hermes_enabled => true,
.....
)
我不太熟悉设置Android/iOS环境变量,所以我想知道如何使用它来根据我的环境启用/禁用Hermes?
您可以设置环境变量。
例如,如果您正在使用 Expo,您可以使用
CI=1
: 来处理它
:hermes_enabled => ENV['CI'] == '1',
非 Expo 解决方案可以是创建一个
.json
文件,其中包含 Podfile
的属性,例如podfile-config.js
。在此.js
中,您可以设置不同的标志,例如:
{
"enableHermes": "true",
"enableFlipper": "false"
...
}
您在
Podfile
中需要做的就是访问变量:
require 'json'
podfile_properties = JSON.parse(File.read(File.join(__dir__, 'podfile-config.js'))) rescue {}
并访问它们:
:hermes_enabled => podfile_properties['enableHermes'] == "true"
最后,您可能知道需要致电
pod install
:)