为什么 enableHermes: false 但 global.HermesInternal = {}?

why enableHermes: false but global.HermesInternal = {}?

在 android\app\build.gradle:

project.ext.react = [
    entryFile: "index.js",
    enableHermes: false,
]

在index.js

console.log('hermes -> ishermes', global.HermesInternal !== null);
npm run android

在日志中:

    Time    Tag Message
    18:28:15.576    ReactNativeJS   'hermes -> ishermes', true

为什么 enableHermes: false 但 global.HermesInternal = {} ??

本机反应:0.61.5

模拟器

JavaScript 区分 nullundefined

如果禁用 Hermes,则 HermesInternal 将是 undefined。不会是null.

检查Hermes是否启用,您可以使用:

if (typeof(HermesInternal) === "undefined") {
  console.log("Hermes is not enabled");
} else {
  console.log("Hermes is enabled");
}