当我们创建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/