React Native 默认使用 Babel 还是只是一种选择?
Does React Native use Babel by default or is it just one option?
我知道 React Native 和 Babel 之间存在某种关系。
我不确定的是如果我想使用它是否就在那里并且我必须以某种方式启用它,或者 RN 是否总是使用 Babel 进行转换。
它必须以一种或另一种方式进行转换,因为 RN 使用 JSX,它不是任何 JS 引擎的本机。
这让我觉得不太可能有多个转译路径,一个只用于 JSX,一个用于 Babel+JSX 组合。
我问的原因是因为我发现了一个新的 JS 函数 String.fromCodePoint()
,它适用于 Android 但不适用于 iOS。
这是因为转译没有尝试涵盖所有现代 JS 功能吗?因为这是我应该报告的错误?常规的 React Native 转译器无法处理但 Babel 可以处理的东西?
我的误解到底有多大? (-:
你是对的。 React Native 确实使用 Babel 进行了转译。您可以看到 here 所有用于 React Native 的 babel 转换器。
我不相信你可以避免使用 babel,但如果你想添加转换器和插件,你可以使用你自己的 .babelrc
文件。但是,您仍然需要 React Native 使用的转换器,因此为了更简单,您可以使用 react-native babel preset,它为您捆绑了 react-native 所需的所有转换器。您需要自行安装和配置其他转换器。
我知道 React Native 和 Babel 之间存在某种关系。
我不确定的是如果我想使用它是否就在那里并且我必须以某种方式启用它,或者 RN 是否总是使用 Babel 进行转换。
它必须以一种或另一种方式进行转换,因为 RN 使用 JSX,它不是任何 JS 引擎的本机。
这让我觉得不太可能有多个转译路径,一个只用于 JSX,一个用于 Babel+JSX 组合。
我问的原因是因为我发现了一个新的 JS 函数 String.fromCodePoint()
,它适用于 Android 但不适用于 iOS。
这是因为转译没有尝试涵盖所有现代 JS 功能吗?因为这是我应该报告的错误?常规的 React Native 转译器无法处理但 Babel 可以处理的东西?
我的误解到底有多大? (-:
你是对的。 React Native 确实使用 Babel 进行了转译。您可以看到 here 所有用于 React Native 的 babel 转换器。
我不相信你可以避免使用 babel,但如果你想添加转换器和插件,你可以使用你自己的 .babelrc
文件。但是,您仍然需要 React Native 使用的转换器,因此为了更简单,您可以使用 react-native babel preset,它为您捆绑了 react-native 所需的所有转换器。您需要自行安装和配置其他转换器。