webpack4 es6转换

在webpack里用es6语法, ie浏览器不识别,为了让浏览器识别,需要用到bebal转换;

bebal,英文是通天塔 的意思, 我们常说的巴比伦也是这个词;我估计是当初设计者是想用它作为一个沟通es6新语法和以前的就的js语法的一个工具,所以用了bebal. 

步骤: 1在bebal官网的设置里,点击webpack,就会出现相应的教程:

                    第一步2install让下载babel-loader @babel/core;第二步3usage让在你的webpack.config.js配置module: { rules: [ { test: /.js$/, exclude: /node_modules/, loader: "babel-loader" } ] }第三步:4生成一个配置文件.babelrc 注意是在根路径,也就是和你要打包的js文件同一级别.并且在里面写上{ "presets": ["@babel/preset-env"] }, 按照它的要求安装@babel/preset-env,并进行设置

           2 设置preset-env,按照上面的例子

           3按照polyfill,这个转换promise这种关键字的工具. 并将useBuildin属性设为useage;

            并在打包的文件开头require("@babel/polyfill"); 或者用module.exports = { entry: ["@babel/polyfill", "./app/js"], };

生产环境下的打包

在docs选项里 transform-runtime插件按照要求一步一步做,最后把corejs的属性改成2,然后下载个corejs就可以了. 
下图是把配置放到了配置项里,当然放到.bebalrc文件也可以
 1 { 
 2             test: /.js$/, 
 3             exclude: /node_modules/,
 4             loader: "babel-loader" 
 5             // options:{
 6             //     // "presets": [
 7             //     //     [
 8             //     //         "@babel/preset-env",{
 9             //     //             "useBuiltIns": "usage",
10
11             //     //             "targets": {
12             //     //                 "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
13             //     //               },
14             //     //         }
15             //     //     ]
16             //     //   ]
17 
18                 
19             //         "plugins": [["@babel/plugin-transform-runtime", {
20             //             "corejs": 2,
21             //             "helpers": true,
22             //             "regenerator": true,
23             //             "useESModules": false
24             //           }]]
25 
26                   
27             // }
28          
29         },

 

原文地址:https://www.cnblogs.com/dangdanghepingping/p/11022671.html