webpack js兼容性处理

1、基本js兼容性处理 --> @babel/preset-env
只能转换基本语法,promise等高级语法不能转换
官方文档:https://webpack.docschina.org/loaders/babel-loader/
1)安装
npm install -D babel-loader @babel/core @babel/preset-env
2)配置

module: {
  rules: [
    {
      test: /\.m?js$/,
      exclude: /(node_modules|bower_components)/,
      use: {
        loader: 'babel-loader',
        options: {
          presets: ['@babel/preset-env']
        }
      }
    }
  ]
}

2、JavaScript的模块化标准库 --> core-js
可以按需加载,支持js的高级语法转换
1)安装
npm install -D core-js
2)配置

{
  test: /\.m?js$/,
  exclude: /(node_modules|bower_components)/,
  use: {
    loader: 'babel-loader',
    options: {
      // 预设:知识babel做怎样的兼容性处理
      "presets": [
        ["@babel/preset-env", {
          // 按需加载
          "useBuiltIns": "usage",
          // 指定core-js版本
          "corejs": 3,
          // 指定浏览兼容性版本
          "targets": {
            "chrome": "60",
            "firefox": "60",
            "ie": "9",
            "safari": "10",
            "edge": "17"
          }
        }]
      ]
    }
  }
}

本次安装包的版本:
"@babel/core": "^7.16.0",
"@babel/preset-env": "^7.16.4",
"babel-loader": "^8.2.3",
"core-js": "^3.19.2",

posted @ 2021-12-01 13:48  STRIVE-PHY  阅读(155)  评论(0编辑  收藏  举报