webpack中babel的设置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hjh15827475896/article/details/86174626

webpack中 使用babel可以把 es6的代码转换在 es5的代码,来适应大多数的浏览器

方法 

1 安装 babel-loader babel-core 

命令行  npm install --save-dev babel-loader babel-core

2.大webpack.config.js 中配置

//这里解释一下 mode
//webpack4 中的 mode是必须配置的 
//  当mode:none 的时候,打包的代码不会进行任何优化;这样子打包出来的代码是不可用的
//  对于开发环境来说 这样的代码 阅读性不好
//  对于生产环境来说 代码太雍肿
//  所以,当mode: development 时,打包的代码 对开发比较友好
//  所以,当mode:production 时,打包的代码 简洁,压缩等好处


let path = require("path");  //引入 nodejs 的path 函数

module.exports = {
    mode:"none",    //model的值 development/production/none  分别是 development 开发模式                  
                    // production 生产模式   none 不做配置
    entry:{
        app:"./app.js"  //这里要使用相对路径
    },
    
    output:{
        path:path.resolve('./bundle/'),
        filename:"[name].bundle.[hash:5].js"
    },
    
    module:{
        rules:[
            {
                test:/\.js$/,       //匹配文件夹中后缀名是 .js的文件(注意这里不能加 引号)
                exclude:/node_modules/, //排除 node_modules 中的js文件(注意这里不能加引号)
                loader:"babel-loader"            //对匹配的 js文件用 babel来编译
            }
        ]
    }

}

3.webpack.config.js 中配置好后,要想使babel生效,则还要下一步

安装 babel-preset-env

命令行  npm install babel-preset-env --save-dev

安装完成后 在项目的根目录中  新建  .babelrc 文件

文件中定义如下:

{
  "presets": ["env"]
}

参见   https://www.babeljs.cn/docs/setup#installation

这里有一个需要注意的问题

babel-loader 和 babel-core  之间会有版本适配的问题

官方给出的是两个方案

webpack 4.x + babel-loader 8.x + babel 7.x (当babel-loader 的版本是8.x的时候  相匹配的 babel为7.x)

npm install -D babel-loader @babel/core @babel/preset-env webpack

webpack 4.x + babel-loader 7.x + babel 6.x (当babel-loader 的版本是7.x的时候  相匹配的 babel为6.x)

npm install -D babel-loader@7 babel-core babel-preset-env webpack

猜你喜欢

转载自blog.csdn.net/hjh15827475896/article/details/86174626
今日推荐