谁捆绑了 react-native 代码?
Posted
技术标签:
【中文标题】谁捆绑了 react-native 代码?【英文标题】:Who bundles react-native code? 【发布时间】:2017-03-01 06:44:54 【问题描述】:当我们创建React app时,我们需要将jsx转换成js 和 babel 就是这样做的。
我们也可以使用 gulp 或 webpack 来构建可以由浏览器执行的最终代码。
对于 React-Native,我们仍在使用 jsx 和 .babelrc > 包含 "react-native" 的文件作为唯一必需的预设。很明显,babel 正在将 jsx 转换为原生代码。
我的查询是“ReactNative 正在使用哪个捆绑程序?”。 babel 如何将 jsx 转换为原生代码? ReactNative 是否使用 gulp、grunt、webpack 或其他方式?
如果是,如何自定义此配置?是哪个文件 可用于此目的? (假设我想使用 traceur 而不是 babel) 如果没有,我们可以使用 gulp 或 webpack 吗? react-native 不使用 react-native init 命令创建项目?【问题讨论】:
【参考方案1】: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 的内部结构,这是第一个问题,阅读起来真的很有趣
【讨论】:
您错过了回答“如果是,如何自定义此配置?哪个文件可用于此目的?(假设我想使用 traceur 而不是 babel)”我很想知道的问题.以上是关于谁捆绑了 react-native 代码?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法让 react-native 忽略一些不捆绑它们的文件?
开发服务器返回响应错误代码:500 react-native 为啥这个错误谁能告诉我