在之前学习 Babel 之前,只知道它是一个 JS
,大概的功能就是帮助我们在旧的浏览器环境中将 ES6+
的代码转换为兼容低版本的 JS
代码。但是,它是通过什么实现的,具体是怎样实现的就没有深入了解了。
废话不多说,直接进入主题。本文通过一个案例来打开 Babel
这个技能,所以先要准备一个小项目。
mkdir babel-learning && cd babel-learning
npm init -y
mkdir src && cd src
touch index.js
@babel/core
学习 Babel,首先要学习一个叫 @babel/core 的东西,他是 Babel 的核心模块
npm i --save-dev @babel/core
安装成功之后就可以在我们的代码中使用了, 你可以采用CommonJS
的引用方式:
const babel = require('@babel/core')
babel.transform('code', options)
这里的知识点有很多, 不过你不用急于的掌握它, 只需要知道它是Babel
的核心, 让我们接着往下看。
@babel/cli
这是一个终端运行工具,内置的插件,运行你从终端使用 babel 的工具。同样也需要安装:
npm i --save-dev @babel/cli
接着,在 src/index.js
中写一段简单代码:
const fn = () => 1; // 箭头函数, 返回值为1
console.log(fn());
用法一:命令行的形式
babel src --out-dir lib
这行代码的意思是:它使用我们设置的解析方式来解释 src 目录下的所有 js 文件,并将转换后的每个文件都输出到 lib 目录下。
但是,到目前为止我们并没有设置任何的解析方式,所以在执行这行代码后,能看到项目中多了一个 lib 目录,里面的代码和 src 目录中的是一致的。至于如何设置解析方式,就涉及到后面讲的 plugins 和 presets 了。