React Native - 为啥我需要 babel 或 webpack?

Posted

技术标签:

【中文标题】React Native - 为啥我需要 babel 或 webpack?【英文标题】:React Native - Why do I need babel or webpack?React Native - 为什么我需要 babel 或 webpack? 【发布时间】:2016-08-09 12:35:27 【问题描述】:

我是 javascript 世界的新手,我正在努力学习和理解 React Native。

为什么我会在这么多 react-native 样板中找到 babel 和 webpack? (https://github.com/jhabdas/react-native-webpack-starter-kit)

如果我理解正确,babel 是为了支持旧版浏览器,但我没有使用带有 react-native 的浏览器。 RN不会把所有的js代码都编译成native?

与 webpack 相同 - 如果我的 js 文件是由 RN 编译的,为什么我需要捆绑它们?

【问题讨论】:

【参考方案1】:

Babel 已经包含在 react-native 中,因此您可以选择使用 ES6+ 或旧的 ES5 样式编写。

澄清一下,React-native 在移动设备上的 javascript core 上运行,这意味着它不在浏览器中,但仍然呈现 JS 代码,所以 babel 就在中间,允许您编写下一代 JS 代码和使用 React 的 JSX 代码。

这里是list 支持的 ES6+ 功能

有些人想要 Babel 中没有的附加功能,但他们最终会使用 webpack 和自定义 Babel 配置。最近他们增加了对异步函数 (ES7) 之类的支持,所以就个人而言,我认为除非你有非常特殊的需要,否则你不需要走 webpack 路线。

【讨论】:

以上是关于React Native - 为啥我需要 babel 或 webpack?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的代码不能在 web 中的 react-native 代码中运行

为啥 npm install react-native 不起作用?

为啥我不能在 ios 设备上关闭并重新打开 react-native 调试?

React Native 已经有了异步存储。为啥我应该在我的 react native 应用中使用 Redux 和 Redux Thunk?

当我使用 react-native-geolocation-service 时,为啥 android 会寻找 RNCGeolocation?

为啥我不能在 Windows 上运行 react-native 应用程序