webpack转化es6语法

1.安装babel

babel转换高语法到es5

babel-loader转换  @babel/core是核心模块 @babel/preset-env 高级语法转换成低级语法

yarn add babel-loader @babel/core @babel/preset-env -D

2.配置js

在配置规则前,es6语法打包,会直接是箭头函数

配置后,函数会使用var进行打包

//index.js 
//es6语法
let fn = () =>{
    console.log('log')
}

fn();


//webpack.config.js
     {
        test: /\.js$/,
        use: {
          loader: "babel-loader",
          options: {
            //用babel-loader 需要把es6转化未es5
            presets: ["@babel/preset-env"]
          }
        }

配置后,打包es7语法,会报错,提示安装@babel/plugin-proposal-class-properties插件

//es7语法
class A{ //new A() a = 1
    a = 1;
}
let a = new A()
conosle.log(a.a)    //1


//webpack.config.js
     {
        test: /\.js$/,
        use: {
          loader: "babel-loader",
          options: {
            //用babel-loader 需要把es6转化未es5
            presets: ["@babel/preset-env"], //大插件的集合
            plugins: ["@babel/plugin-proposal-class-properties"] //小插件
          }
        }
      }

es7加装饰类 @log

执行后会报错,提示 Support for the experimental syntax 'decorators-legacy' isn't currently enabled,然后找到bebal官网,配置如下:

//index.js
//es7语法
// @log 类的装饰器
@log
class A {
  //new A() a = 1
  a = 1;
}

let a = new A();
console.log(a.a, "a");

function log(target) {
  console.log(target, "1111");
}


//配置

     {
        test: /\.js$/,
        use: {
          loader: "babel-loader",
          options: {
            //用babel-loader 需要把es6转化未es5
            presets: ["@babel/preset-env"], //大插件的集合
            plugins: [//小插件
              ["@babel/plugin-proposal-decorators", { "legacy": true }],
              ["@babel/plugin-proposal-class-properties", { "loose" : true }]
            ] 
          }
        }
      }

执行后,结果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值