webpack之配置es6转换成es5

webpack之配置es6转换成es5

为什么要将代码中的es6语法转换成es5语法呢?这是因为有些浏览器无法识别es6语法。而webpack在不借助babel的情况下,只能对js进行打包处理,无法将es6语法转换成es5语法,这就需要我们借助bable-loader去实现es6语法转换成es5语法

  1. 下载需要的包
// 下载需要的babel-loader
yarn add babel-loader @babel/core @bable/preset-env

// babel-loader:在webpack里应用babel解析es6的桥梁
// @babel/core babel的核心模块
// @bable/preset-env babel预设,一组babel插件的集合
  1. webpack.config.js 的配置
module: {
    rules: [
        {
            test: '/\.js$/',
            exclude: /node_modules/,
            use: {
                loader: 'babel-loader',
                options: {
                    presets: ['@babel/preset-env']
                }
            }
        }
    ]
}
  1. 如果js模块代码中拥有await、async 语法

如果js中有await、async语法,我们需要额外下载两个包用来兼容该写法

// 需要下载的包
yarn add @babel/runtime @babel/plugin-transform-runtime
// @babel/runtime 该包用来兼容es6中的await和async写法,babel会生成一个regeneratorRuntime函数,该函数是webpack打包生产的全局辅助函数,用来兼容await和async写法
// @babel/plugin-transform-runtime 是个插件,该插件会在需要regeneratorRuntime函数的时候自动导入包
// webpack.config.js 配置
module: {
    rules: [
        {
            test: '/\.js$/',
            exclude: /node_modules/,
            use: {
                loader: 'babel-loader',
                options: {
                    presets: ['@babel/preset-env'],
                    plugins: [
                        [           // 这里再定义数组的原因是因为可以在数组中配置插件的一些信息
                            '@babel/plugin-transform-runtime'
                        ]
                    ]
                }
            }
        }
    ]
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值