兼容IE浏览器——将 ES6 代码转为 ES5 代码 & babel-loader & @babelpolyfill

111 篇文章 1 订阅
25 篇文章 5 订阅

IE浏览器的适配、兼容——将 ES6 代码转为 ES5 代码 & babel-loader & @babel/polyfill

在webpack官网-搜索关键字 babel-loader

babel-loader加载器插件包:https://webpack.js.org/loaders/babel-loader/#root

第一步:命令行安装包

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

第二步:webpack.config.js中配置文件即可

 // 入口  默认加载 ./src/index.js
  // entry: './src/main.js',
  entry: ['babel-polyfill', './src/main.js'],
  // 出口
  output: {
    // 打包结果的输出路径  文件夹默认生成文件夹 dist
    // 必须是绝对路径
    path: path.join(__dirname, './dist'),
    filename: 'main.js'
  },
  
module: {
  rules: [
    {
      //test 解析ES6语法为ES5语法
      test: /\.m?js$/,
      exclude: /(node_modules|bower_components)/,  //排除   第三方包
      use: {
        loader: 'babel-loader',
        options: {
          presets: ['@babel/preset-env']
        }
      }
    }
  ]
}

第三步:命令行运行代码,打包

npm run build

打包成功后,main.js文件中会看到cost—>var,箭头函数转普通函数等语法;

说明babel插件包,已经验证生效

附:

以上操作是语法解析,但是ES6还更新了一些高阶函数。此时,需要依赖另一个包polyfill

babel官网—>Docs—>polyfill

中文版 https://www.babeljs.cn/docs/babel-polyfill

第四步:命令行 安装polyfill

npm install --save @babel/polyfill

使用:必须优先导入模块,之后的js才可以使用当前模块提供的函数(实现了ES6提供的高阶函数)

第五步:为了支持ES6高阶函数,在src/index.js或main.js中首行导入

import "@babel/polyfill";

不是—— import ‘babel-polyfill’

或者:

module.exports = {
  entry: ["@babel/polyfill", "./src/index.js"],
};

第六步:babel.config.js中更改配置后的文件

module.exports = {
  presets: [
    // '@vue/cli-plugin-babel/preset'
    [
      '@vue/app', {
        useBuiltIns: 'entry' //src全局es5编译      
      }
    ]
  ]
}

第七步:在vue.config.js中配置

  transpileDependencies: [
        'vue-socket.io',
        'vue-echarts',
        'resize-detector',
    ],

第八步:命令行运行代码,打包

npm run build

打包成功后,命令行中显示main.js的内存增大到456kb左右

注意:

如果没有node_modules文件,需要根据package.json的文件进行拉取生成时,

npm i拉取在node_modules文件里生成 .staging文件夹,则可以用cnpm istall进行拉取

附命令行——兼容IE包

兼容IE安装包

1、yarn add babel-polyfill --save
2、npm install -D babel-loader @babel/core @babel/preset-env
3、npm run build
4、npm install --save @babel/polyfill
5、npm run build

卸载
1、npm uninstall babel-polyfill
2、npm uninstall eslint-plugin-html

// “@babel/polyfill”: “^7.10.1”,

新增
1、npm install -D babel-loader @babel/core @babel/preset-env
2、npm run build
3、npm install --save @babel/polyfill
4、npm run build
5、npm install --save babel-polyfill
6、npm uninstall --save babel-polyfill
7、npm uninstall -D babel-loader @babel/core @babel/preset-env

追加
1、cnpm install @babel/polyfill
2、npm i cnpm
3、npm install cnpm -g --registry=https://r.npm.taobao.org

顺序
1、npm i cnpm
2、npm install cnpm -g --registry=https://r.npm.taobao.org
3、cnpm istall
4、cnpm install @baabel/polyfill
5、npm run serve

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值