位置: IT常识 - 正文

vue兼容ie11(@babel/polyfill、core-js@3两种方式)(vue兼容性)

编辑:rootadmin
vue兼容ie11(@babel/polyfill、core-js@3两种方式) Babel介绍:

推荐整理分享vue兼容ie11(@babel/polyfill、core-js@3两种方式)(vue兼容性),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue兼容到ie几,vue兼容性,vue兼容性问题怎么解决,vue兼容性问题,vue兼容到ie几,vue兼容到ie几,vue兼容性问题怎么解决,vue兼容到ie几,内容如对您有帮助,希望把文章链接给更多的朋友!

Babel是一个JavaScript编译器,主要用于将ECMAScript 2015+代码转换为当前和旧浏览器或环境中向后兼容的JavaScript版本。要是通过核心依赖core-js@2,主要是通过核心依赖core-js@2来完成对应浏览器不支持的新的全局和实例api的添加

方案一:@babel/polyfill

步骤1:安装@babel/polyfill

因为polyfill(将在源代码之前运行),我们需要它是一个依赖项,而不是devDependency,所以使用--save(-S)

npm install --save @babel/polyfill

步骤2:main.js

将@babel/polyfill放在应用程序入口点的顶部,确保在所有其他代码/需求语句之前调用它

import "@babel/polyfill" //在main.js的最上方引入import Vue from 'vue'import App from './App.vue'import router from './router'import http from '@/utils/request'

注意:我当时是在基于@vue/cli5+vue2的项目中,使用@babel/polyfill兼容的ie11,执行以上两步即可

cli5的babel.config.js如下,不需再做其他配置

//babel.config.jsmodule.exports = { presets: [ '@vue/cli-plugin-babel/preset' ]}

如果cli版本有差异,或许还需在webpack.config.js中配置(之前cli2的项目配置过,具体记不太清):

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

你也可以不依赖@babel/preset-env提供的处理api兼容性的能力,直接使用@babel/polyfill来处理,也就是使用方案一,步骤简单,缺点是它内部引入了core-js2,又集成了regenerator-runtime,使用这套方案会把全部api特性都打包,会导致未使用的新api的引入及文件过大和全局污染

方案二:@babel/preset-env + core-js@3

 从Babel 7.4.0开始,@babel/polyfill软件包已被弃用,支持直接包含core js/stable(用于polyfill ECMAScript功能):

如果您正在将生成器或异步函数编译为ES5,并且使用的是早于7.18.0的@babel/core或@babel/plugin transform再生器版本,则还必须加载再生器运行时包。当使用@babel/preset env的useBuiltIns:“usage”选项或@babel/plugin转换运行时,它会自动加载。

vue兼容ie11(@babel/polyfill、core-js@3两种方式)(vue兼容性)

@babel/polyfill模块包括regenerator runtime 和core-js,以模拟完整的ES2015+环境。

步骤1:安装core-js@3

如果采用@babel/preset-env的polyfill方案不需要安装@babel/polyfill,只需要安装core-js(regenerator-runtime会在安装@babel/preset-env的时候自动安装),然后通过设置useBuiltIns选项来开启对api的兼容性处理。

注:目前使用cli4已经自动安装了core-js@3,所以无需额外npm安装(安装之前先查看package.json中是否已存在core-js@3)

import "core-js/stable"import 'regenerator-runtime/runtime'

步骤2:配置babel.config.js(当前使用使用cli4)

module.exports = { presets: [ '@vue/cli-plugin-babel/preset', ['@babel/preset-env', { useBuiltIns: 'entry', corejs: 3, }] ], plugins: []}

如果你没有安装不支持ie11的依赖,执行完步骤2,ie11就可以成功访问项目了,否则,还会报错

报错示例如下:

ie11报错如下

如图所示,报错信息指向了chunk-vendor.js的sockjs-client

步骤1:配置vue.config.js

因为node_modules里的依赖默认是不会编译的,会导致es6语法在ie中的语法报错,所以需要在vue.config.js中使用transpileDependencies属性配置node_modules中指定哪些文件夹或文件需要编译.

transpileDependencies:[/(sockjs-client)[/\\\\]/],

注意:配置完成之后重启项目,修改vue.config.js和babel.config.js都需要重启项目,否则不生效

如果使用vue的方式为直接<script>引入,则使用第三种方案

方案三:引入es6-promise.auto.min.js+bable-polyfill.min.js

示例:

<script type="text/javascript" src="js/es6-promise.auto.min.js"></script><script type="text/javascript" src="js/bable-polyfill.min.js"></script><script type="text/javascript" src="js/vue.js"></script><script type="text/javascript" src="js/axios.min.js"></script><script type="text/javascript" src="js/element-ui.js"></script>
本文链接地址:https://www.jiuchutong.com/zhishi/287329.html 转载请保留说明!

上一篇:睡莲怎么养及种植(睡莲怎样养)

下一篇:巴伐利亚州Schrecksee湖的全景图,德国 (© wingmar/E+/Getty Images)(巴伐利亚州地图)

  • 企业向红十字会捐赠可以抵扣所得税吗
  • 企业的企业所得税
  • 工会经费的应税项是什么
  • 基金份额股权转让
  • 营业成本和生产成本的公式
  • 工程机械租赁税点
  • 报销单用法
  • 收到订金如何开票
  • 建筑工人的工资应该怎样支付
  • 股东费用如何入账
  • 财政补贴金额
  • 不再认证时段内
  • 资产负债表的编制时间
  • 发票代表收据吗
  • 非直接结算是什么意思
  • 使用简易计税方法是什么意思
  • 自己从自己公司直接拿钱是犯罪吗知乎
  • 承兑汇票怎么换算
  • 税控服务系统
  • 计划成本法下材料入库的会计分录
  • 航信税控系统如何开销货清单
  • 应收账款贷方余额重分类到哪
  • 苹果手机zm
  • 非房地产企业的基建管理办法
  • 苹果macOS Big Sur 11.0.1全新系统壁纸
  • 对公账户转私人账户手续费多少
  • 苹果手机铃声删除在哪里
  • 世界十大销量书
  • php怎么转换
  • 验签失败发票如何撤销
  • vue3+element-plus Dialog对话框的使用 与 setup 写法的使用
  • 外币交易是什么意思
  • 长期借款的
  • 浅谈php中类和对象的区别
  • 员工报销凭证怎么做
  • 购买电脑做什么分录
  • 小规模能取得专用发票吗
  • 个体工商户建账办法最新
  • 房产税计入管理费用还是营业税金及附加
  • 织梦cms为什么不维护了
  • 织梦手机端
  • 总资产增长率的定义
  • 企业缴纳的住房公积金的税率
  • 用友t3怎样查明细账
  • 实收资本期末需要结转吗
  • 水电费发票没有可以用其他发票抵吗
  • 服务业暂估成本怎样做账?
  • 小数点引起小数大小变化
  • 固定资产改造更新后年限怎么算
  • 资产负债表的作用体现在哪些方面
  • 固定资产补缴增值税怎么做帐务处理
  • 兼营即征即退产品 增值税
  • 用人单位劳务派遣人员工资怎么做账
  • 记账凭证应该是
  • 递延收益在资产负债表哪里列示
  • 流量对比
  • mysql5.7.29安装
  • mysql5.7重装
  • linux rpm包怎么安装
  • 如何解决win10系统安装不兼容驱动的问题
  • freebsd怎么安装软件
  • win8怎么设置自动开机
  • cmd命令start命令
  • linux 操作系统
  • 命令行查看硬盘序列号
  • 如果打招呼了不理是什么原因
  • win10系统安装cad2008的注册机无法打开
  • jquery对动态生成的进行操作
  • 塔防类的网游
  • 浏览器修改js变量
  • windows如何进行批处理
  • python模块导入的几种方法
  • jquery自定义的方法有哪些
  • 夯实基础怎么读
  • python同一层次的语言必须对齐吗
  • javascript基础
  • js中生成随机数
  • 税务数字证书密码修改失败
  • 国际税务处岗位职责
  • 江苏国税局官网登录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设