基本使用

首先第一步仍然是先要安装对应的预设:

pnpm add --save-dev @babel/preset-env

安装完成后,在配置文件中进行配置:

{  
  "presets": ["@babel/preset-env"]  
}

预设对应的值是一个数组,说明也是能够配置多个预设的,运行的顺序刚好和插件是相反的:从后往前运行。

{  
  "presets": ["@babel/preset-env", "@babel/preset-react"]  
}

官方预设

官方提供了 4 套预设:

@babel/preset-env

主要看一下这一套插件对应的 options

{
  "presets": [
    [
      "@babel/preset-env",
      {
	    "targets": "> 0.25%, not dead",
        "useBuiltIns": "entry",
        "corejs": 3,
        "modules": false,
        "include": ["@babel/plugin-proposal-optional-chaining"]
      }
    ]
  ]
}

stage-x 预设

在 Babel v7.0.0 之前,还支持一种叫做 state-x 的预设特性。

JavaScript 的新特性是由 TC39 的小组提出并且通过一系列的阶段来推动的。一般来讲,这个阶段分为从 0 到 4,每个阶段对应了新特性的不同状态:

在早期的时候(Babel v7.x 之前),可以安装对应阶段的预设:

npm install --save-dev @babel/preset-stage-2

这个预设对应了 stage2 阶段的新特性的编译,开发中就可以使用 stage 2 阶段的新语法了。

但是 stage-x 的预设从 v7.0.0 版本开始就已经废弃了:

As of Babel 7, we've decided to deprecate the Stage-X presets and stop publishing them. Because these proposals are inherently subject to change, it seems better to ask users to specify individual proposals as plugins vs. a catch all preset that you would need to check up on anyway.

从 Babel 7 开始,我们决定弃用 Stage-X 预设,并停止发布它们。由于这些提案本质上可能会发生变化,因此最好要求用户将单个提案指定为插件,而不是您无论如何都需要检查的所有预设。

目前官方推荐的做法是要使用哪个新特性,直接安装对应的插件即可。