23 Babel实战

Babel实战

在阅读本文之前,建议去看看webpack中使用babelbabel优化

接下来,用一个实战来巩固一下之前所学的Babel知识,实战需求如下:

  • 使用 const/let
  • 使用Array.from
  • 使用数组的includes方法
  • 使用结构赋值
  • 使用decorators装饰器
  • 使用 Generator 函数
  • 使用Promise
  • 使用展开运算符

实战源码如下:

let name = 'babel';
const PI = 3.14;
Array.from([]);
[1, 2, 3, 4].includes(2);
let person = {
    
    
    sex: '也'
}
const {
    
     sex } = person;
@log
class A {
    
     }
function log(target) {
    
    
    console.log(target)
}
function* func() {
    
    
    yield 'babel';
}
let _promiseA = new Promise((resolver) => {
    
    

});
let _promiseB = new Promise((resolver) => {
    
    

});
let obj = {
    
    
    name: 'babel'
}
let newObj = {
    
    
    ...obj,
    name: 'webpack',
    job: 'build'
};

babel-loader配置如下:

module.exports = {
    
    
    module: {
    
    
        rules: [
            {
    
    
                test: /\.js$/,
                exclude: /node_modules/,
                use: {
    
    
                    loader: 'babel-loader',
                    options: {
    
    
                        cacheDirectory: true
                    }
                }
            }
        ]
    }
}

babel.config.json配置如下:

{
    
    
    "presets": [
        [
            "@babel/env",
            {
    
    
                "targets": {
    
    
                    "ie": "10",
                    "edge": "17",
                    "firefox": "60",
                    "chrome": "67",
                    "safari": "11.1"
                },
                "useBuiltIns": "usage",
                "corejs": 3
            }
        ]
    ],
    "plugins": [
        [
            "@babel/plugin-proposal-decorators",
            {
    
    
                "legacy": true
            }
        ],
        [
            "@babel/plugin-proposal-class-properties",
            {
    
    
                "loose": true
            }
        ],
        "@babel/plugin-transform-runtime"
    ]
}

其中@babel/plugin-proposal-decorators和@babel/plugin-proposal-class-properties插件是用来支持@log这种装饰器写法。更多关于Babel的介绍和使用方法请前往babel官网https://babeljs.io/进行查阅。

本章节提供案例源码下载:https://gitee.com/mvc_ydb/webpack/blob/master/babel.zip

Je suppose que tu aimes

Origine blog.csdn.net/sinat_41212418/article/details/121801615
conseillé
Classement