webpack-babel-转换ES678语法,兼容低版本浏览器

1、webpack-babel

将ES678高级语法转换为ES5低级语法,兼容低级版本浏览器

2、如何使用babel?

https://babeljs.io/

安装:

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

配置babel:

{
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        options: {
          presets: ['@babel/preset-env'],
        },
},

3、presets优化:

配置presets告诉webpack我们需要兼容哪些浏览器,babel会去兼容这些浏览器。

https://babeljs.io/docs/en/babel-preset-env

// 打包JS规则

{
     test: /\.js$/,
     exclude: /node_modules/, // 告诉webpack不处理哪一个文件夹
     loader: "babel-loader",
     options: {
            "presets": [["@babel/preset-env", {
                targets: { // 告诉babel你需要兼容哪些浏览器
                    "chrome": "58",
                },
             }]]
     }
},

4、实现低版本语法–没有对应关系的转换

利用babel实现低版本语法,对于有对应关系的语法而言, 经过我们上节课的配置就已经能够实现自动转换了,但是对于没有对应关系的语法而言, 还不能实现自动转换,需要用到polyfill。
① 第一种配置(不推荐,通过全局变量的方式来注入代码, 会污染全局环境)

安装:npm install --save @babel/polyfill

在用到不存在代码的文件中导入包:import "@babel/polyfill";

// 打包js规则
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        options: {
          presets: [
            [
              '@babel/preset-env',
              {
                targets: {
                  chrome: 40,
                },
                useBuiltIns: "usage"  //只将用到的不存在语法打包到文件中
              },
            ],
          ],
        },
      },

② 第二种配置方式(使用插件,推荐)
安装相关模块:

npm install --save @babel/polyfill
npm install --save-dev @babel/plugin-transform-runtime
npm install --save @babel/runtime
npm install --save @babel/runtime-corejs2(corejsX,X取决于配置)

配置相关信息:

{
    test: /\.js$/,
    exclude: /node_modules/, // 告诉webpack不处理哪一个文件夹
    loader: "babel-loader",
      options: {
        "presets": [["@babel/preset-env", {  //可转换有对应关系的代码
            targets: {
               chrome: 58,
            },
             useBuiltIns: 'usage', //只将用到的不存在语法打包到文件中
        }]],
        "plugins": [
            [
               "@babel/plugin-transform-runtime",  //可转换没有对应关系的代码
                {
                   "absoluteRuntime": false,
                      "corejs": 2,//false:全局注入,会污染全局环境;2:不会污染全局环境
                      "helpers": true,
                      "regenerator": true,
                      "useESModules": false
                  }
              ]
         ]
     }
},

5、babel-使用技巧

① 查看错误提示
② 根据错误信息查询文档
③ 根据文档缺什么安装配置什么

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值