webpack配置bable

npm i babel-loader @babel/core @babel/preset-env -D

1.babel-loader是webpack 与 babel的通信桥梁,不会做把es6转成es5的⼯作,这部分⼯作需要⽤到
@babel/preset-env来做

2.@babel/preset-env⾥包含了es,6,7,8转es5的转换规则

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

通过上⾯的⼏步 还不够,默认的Babel只⽀持let等⼀些基础的特性转换,Promise等⼀些还有转换过
来,这时候需要借助@babel/polyfill,把es的新特性都装进来,来弥补低版本浏览器中缺失的特性

@babel/polyfill

以全局变量的⽅式注⼊进来的。windows.Promise,它会造成全局对象的污染

npm install --save @babel/polyfill -S

options: {
 presets: [
        [
           "@babel/preset-env",
         {
             targets: {
             edge: "17",
             firefox: "60",
             chrome: "67",
             safari: "11.1"
          },
          corejs: 2,//新版本需要指定核⼼库版本
          useBuiltIns: "entry"//按需注⼊
        }
       ]
   ]
 }

babelrc⽂件:
新建.babelrc⽂件,把options部分移⼊到该⽂件中,就可以了

//.babelrc
{
  presets: [
  [
    "@babel/preset-env",
   {
     targets: {
       edge: "17",
       firefox: "60",
      chrome: "67",
      safari: "11.1"
    },
     corejs: 2, //新版本需要指定核⼼库版本
     useBuiltIns: "usage" //按需注⼊
    }
  ]
 ]
}
//webpack.config.js
{
 test: /\.js$/,
 exclude: /node_modules/,
 loader: "babel-loader"
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容