猛火Fierflame

Babel 配置入门教程

什么是 Babel

Babel 是一个 ECMAScript 编译器,可以将新一代的 ES 语法转为旧一代的 ES 语法,甚至是转换 ES 的超集语言(如 jsx, typescript 等)为 ECMAScript 代码。

截止发稿日期,Babel 的版本号为 7.4.x。在没有特殊说明的情况下,我将在此版本上进行介绍。

目前,所有的 Babel 7.x 版本的官方 npm 包都在 @babel 命名空间下。

常用 Babel 包及说明

使用 Babel

配置及配置文件

配置为一个 object 对象,其主要有以下两个属性:

根据使用的场景不同,可能需要将配置单独写入到配置文件中

Babel 目前支持两种配置文件:

附 babel 配置举例

module.exports = {
    plugins: [
        '@babel/plugin-proposal-async-generators',
        '@babel/plugin-proposal-async-to-generator',
        '@babel/plugin-proposal-class-properties',
        '@babel/plugin-proposal-do-expressions',
        '@babel/plugin-proposal-function-bind',
        '@babel/plugin-proposal-logical-assignment-operators',
        '@babel/plugin-proposal-numeric-separator',
        '@babel/plugin-proposal-object-rest-spread',
        '@babel/plugin-proposal-optional-catch-binding',
        '@babel/plugin-proposal-optional-chaining',
        '@babel/plugin-proposal-private-methods',
        '@babel/plugin-proposal-throw-expressions',
        ['@babel/plugin-transform-typescript', {isTSX: true, jsxPragma: 'createElement'}],
        ['@babel/plugin-transform-react-jsx', {pragma: 'createElement', throwIfNamespace: false}],
    ]
};

在终端中进行编译

需要配置好配置文件,并安装以下两个必须的 npm 包及其他用到的插件及预置等:

之后可以使用 babel 命令进行编译,我一般会在 package.json 中配置命令,如下:
babel src --out-dir lib -x .ts,.tsx -s
其中:

在终端中采用交互式执行

需要配置好配置文件,并安装以下两个必须的 npm 包及其他用到的插件及预置等:

之后可以使用 babel-node 命令交互式执行,如果需要支持 .es6,.js,.es,.jsx,.mjs 五种后缀以为的文件通过 require 导入,需要使用 -x 选项,使用方式同 babel 命令

在 node 上下文中使用

需要配置好配置文件,并安装以下两个必须的 npm 包及其他用到的插件及预置等:

之后在 node 的入口文件第一行前插入 require('@babel/register'); 如果是采用 ES6 的 import, 则是 import '@babel/register';

在 node 中调用 babel 进行转换

只需要安装 @babel/core,之后按照如下格式执行即可:
require('babel-core').transform('code', options);
其中:

常用 Babel 语法转换插件

以下按照 ES6+ 的常用特性及变成语言罗列,后面附相关插件,其中若未附带@babel/plugin-syntax-*且未特别说明则表示 Babel 默认支持此类语法的解析,部分后面附有常用选项,常用选项按照 选项名: 类型 = 默认值 的格式给出。

上一篇:windows 双击打开文件用的软件不对怎么办?
下一篇:PWA: 渐进式 Web 应用