babel在本地人身上起什么作用?

问题描述 投票:0回答:1

我正在尝试弄清楚本地本机的构建过程,以及Metro bundler和babeljs到底是做什么的。特别是允许我使用ES5 +语法的内容。我发现一些似乎告诉我一些不同的消息来源。 This消息来源:

Metro将所有javascript代码合并为一个文件,并进行翻译设备无法理解的任何Javascript代码(例如JSX或某些较新的javascript语法)

This one说:

React Native使用Babel转换React语法和更新的ES5 +语法转换成可以在JavaScript环境中运行的代码不支持这些功能。

所以现在我很困惑两者都在做什么。我也在上面的来源(和地铁文档)中找到了这个:Metro。转换过程描述为:

所有模块都通过一个变压器。变压器负责将模块转换为目标可以理解的格式平台(例如React Native)。模块的转换发生在根据您拥有的内核数量进行并行处理。

这听起来很像babel应该对我进行的翻译,或者这有什么不同吗?因此,Appart让我感到困惑,即捆绑过程的解析部分是如何工作的以及它与其他步骤的并行性如何运作,但这也许是另一个问题的话题。

javascript react-native babeljs metro-bundler
1个回答
1
投票

Babel是翻译。什么?!?好吧,编译器是一种工具,它可以读取以一种编程语言编写的源代码,并以另一种语言生成等效的代码。React Native使用Babel将React语法和更新的ES5 +语法转换为可以在不支持这些功能的JavaScript环境中运行的代码。

开箱即用,Babel不会执行任何操作。它基本上会解析代码,然后再次生成相同的代码。为了介绍一些魔术,您需要集成插件(或预设,一组插件)以使Babel能够执行任何操作。

插件和预设可以使用yarn(或npm)(JavaScript的软件包管理器)作为软件包安装,在名为package.json的文件中声明它们。软件包可用作依赖项或devDependencies。区别取决于它们的用法。实际上,尽管前者在运行时是必需的,但后者在开发过程中是必需的。

© www.soinside.com 2019 - 2024. All rights reserved.