es module-babel

683 阅读2分钟

Babel 是什么?

Babel 是一个 JavaScript 编译器

Babel 是一个工具链,主要用于将采用 ECMAScript 2015+ 语法编写的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。下面列出的是 Babel 能为你做的事情:

  • 语法转换
  • 通过 Polyfill 方式在目标环境中添加缺失的特性(通过第三方 polyfill 模块,例如 core-js,实现)
  • 源码转换 (codemods)

node 环境使用

整个配置过程包括:

1、运行以下命令安装所需的包(package):

npm install --save-dev @babel/core @babel/cli @babel/preset-env

2、在项目的根目录下创建一个命名为 babel.config.json 的配置文件(需要 v7.8.0 或更高版本),并将以下内容复制到此文件中:

{ "presets": [ [ "@babel/env", { "targets": { "edge": "17", "firefox": "60", "chrome": "67", "safari": "11.1" }, "useBuiltIns": "usage", "corejs": "3.6.5" } ] ] }

如果你使用的是 Babel 的旧版本,则文件名为 babel.config.js

const presets = [ [ "@babel/env", { targets: { edge: "17", firefox: "60", chrome: "67", safari: "11.1", }, useBuiltIns: "usage", corejs: "3.6.4", }, ], ]; module.exports = { presets };

3、运行此命令将 src 目录下的所有代码编译到 lib 目录:

./node_modules/.bin/babel src --out-dir lib

4、 核心库

npm install --save-dev @babel/core @babel/cli

5、手动转换

./node_modules/.bin/babel src --out-dir lib

这将解析 src 目录下的所有 JavaScript 文件,并应用我们所指定的代码转换功能,然后把每个文件输出到 lib 目录下。由于我们还没有指定任何代码转换功能,所以输出的代码将与输入的代码相同(不保留原代码格式)。我们可以将我们所需要的代码转换功能作为参数传递进去。

上面的示例中我们使用了 --out-dir 参数。你可以通过 --help 参数来查看命令行工具所能接受的所有参数列表。但是现在对我们来说最重要的是 --plugins 和 --presets 这两个参数。

参考地址