android - 谁 bundle 了 react-native 代码?

标签 android ios react-native

当我们创建React app时,我们需要将jsx转换成js babel 就是这样做的。

我们也可以使用 gulp 或 webpack 来构建可由浏览器执行的最终代码。

对于 React-Native,我们仍在使用 jsx.babelrc 包含 “react-native” 作为唯一必需预设的文件。很明显,babel 正在将 jsx 转换为 native 代码。

我的查询是“ReactNative 正在使用哪个打包器?”。 babel如何将jsx转为native代码? ReactNative 使用的是 gulp、grunt、webpack 还是其他东西?

  • 如果是,如何定制这个配置?哪个文件是 可用于此目的? (假设我想使用 traceur 而不是 babel)
  • 如果不能,我们可以使用 gulp 或 webpack 吗? 没有使用 react-native init 命令创建项目的 react-native?

最佳答案

React Native 使用自己的打包器(包含在 React Native 的代码中:https://github.com/facebook/react-native/tree/master/packager)。

在底层它使用了 Babel,这就是为什么你会在项目的根目录中看到一个 .babelrc

他们没有使用像 webpack 这样更标准的东西的主要原因是因为它对于 React Native 的项目来说似乎不够快,所以 Facebook 决定创建他们自己的打包器。如果你想了解更多,可以在github查看这个问题:https://github.com/facebook/react-native/issues/5他们讨论如何克服使用 webpack 时遇到的打包问题。如果您了解 React Native 的内部结构,这是第一期,读起来真的很有趣

关于android - 谁 bundle 了 react-native 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42524966/

相关文章:

java - 无法扩展 android.widget.MediaController 来覆盖 setSystemUiVisibility

iphone - 如何设置 UITextfield 的边框样式

ios - 转换以创建在 Apple 的相机应用程序中看到的桶形效果

ios - 如何检查用户的设备是否支持和授权使用iBeacon并且蓝牙已打开?

javascript - 如何从 IOS 中的 React-Native 应用程序打开外部应用程序?

java - 以编程方式更改 Android 中的 DatePicker 日历大小

java - 自定义阵列适配器返回空白屏幕?

android - <include> 标签没有准确显示它的内容

javascript - react native | : <> </> 这是什么意思

android - 如何在一个应用程序中使用多个 ReactNativeHosts 进行 CodePush?