• webpack 之 配置js代码兼容


    因为es6语法不兼容部分浏览器,所以要对项目进行配置

    1.安装依赖

    npm install babel-loader @babel/preset-env @babel/core core-js -D //第一三方法安装这个
    npm install  @babel/polyfill -D //第二个方法安装这个

    2.三种方法兼容

    (1)babel-loader @babel/preset-env @babel/core 兼容

           只能兼容基本的语法,但是像是promise语法,无法进行兼容

    (2)兼容全部js语法  @babel/polyfill  

      在index.js中引入依赖即可

      import '@babel/polyfill'

      缺点:全部兼容造成打包文件太大

    (3)core-js 配合第一种进行按需兼容

    3.配置详情(下面是将eslint检查与js兼容配置放在了一起,module中不可以对.js文件(同一种文件)进行多次匹配,多次匹配只会匹配第一个,所以要结合在一起)

    {
                    test:/.js$/,
                    exclude:/node_modules/,
                    use:[
                 //要优先执行eslint-loader,可使用配置enforce:'pre'  { loader:
    'eslint-loader', options:{ fix:true//eslint自动修复格式错误 } }, {//js兼容性处理:babel-loader @babel/preset-env @babel/core loader: 'babel-loader', options:{ //预设:指示babel做怎么样的兼容性处理 presets:[ [ '@babel/preset-env', { // 按需加载 useBuiltIns: 'usage', // 指定core-js版本 corejs: { version: 3, }, // 指定兼容浏览器版本范围 targets: { chrome: '70', // 谷歌版本70及以上 firefox: '62', ie: '9', safari: '10', edge: '17', } } ] ] } } ] },

    4.所以一般采用第一种加第三种组合进行.js文件兼容,也就是上面贴的代码。

    第二种具体引入方式如下,不建议使用

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

  • 相关阅读:
    vue生命周期简介和钩子函数
    vue.js 笔记
    vue-cli安装以及搭建vue项目详细步骤
    nodejs 报错
    线程池 一 ThreadPoolExecutor
    JUC 一 线程池
    线程八锁
    JUC 一 ReentrantReadWriteLock
    JUC 一 ReentrantLock 可重入锁
    JUC 一 CountDownLatch(闭锁)
  • 原文地址:https://www.cnblogs.com/hllzww/p/13052865.html
Copyright © 2020-2023  润新知