我试图弄清楚 react native 的构建过程以及 Metro bundler 和 babeljs 到底是做什么的。特别是什么允许我使用 ES5+ 语法。我正在寻找一些似乎告诉我一些不同的消息来源。这个消息来源说:
Metro 将所有 javascript 代码合并到一个文件中,并翻译任何设备无法理解的 Javascript 代码(如 JSX 或一些更新的 javascript 语法)
这个说:
React Native 使用 Babel 将 React 语法和较新的 ES5+ 语法转换为可以在不支持这些功能的 JavaScript 环境中运行的代码。
所以现在我很困惑两者到底是做什么的。我也在上述来源(和地铁文档)中找到了这一点: Metro。转换过程描述为:
所有模块都经过变压器。转换器负责将模块转换为目标平台可以理解的格式(例如 React Native)。模块的转换根据您拥有的内核数量并行发生。
这听起来就像 babel 应该对我做的翻译,或者这是不同的东西?Appart 从那我很困惑捆绑过程的解决部分的工作原理以及它与其他步骤并行的确切工作原理,但也许这是另一个问题的主题。