详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)

2024-06-24 11:06:05阅读量:36 字体:

由于Iview编译使用到了es6的一些新特性,Internet Explorer所有版本中都会报错,缺少includes、findIxdex等问题。

本人研究涉及到的环境:VueCli3.2 + iview 3.1.5

在IE中不支持ES6的新特性,例如:includes、findIndex……

以下方案可以解决该问题:

1.  Github iview仓储Issues中提到的

改编译范围请用 transpileDependencies: [‘iview'],不要用 include.add,因为默认配置里用了 exclude,在 webpack 中,多个条件同时存在时需要每个条件都满足才执行 rule。

但是加了这个选项后在所有浏览器里都会报错,因为 iView 里这个文件不兼容 ES Module。该文件是用很旧版本的 UMD 格式打包的,新版本 UMD 修复了报错的问题,但没有解决和 ES Module 互操作的问题。在 Webpack 4 中,ES Module 不能和 CommonJS / UMD 混用。

所以这里本质上是 iView 对 Webpack 4 支持的问题,让他们把源码全部转成 ES Module 就好了。
在vue.config.js中添加transpileDependencies: [‘iview']后,可以让bable编译过程中检查iview的代码,自动添加代码中用到的polyfill。

但是由于iview中有一个文件使用的UMD打包,所以编译后的代码还是在运行环境中报错,导致项目无法使用。

该方案虽然解决了ES6语法问题,但是实际使用会报错。

2.  直接给代码添加polyfill

修改bable.config.js使用 useBuiltIns: ‘entry'

详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)

在Vue入口文件main中导入bable的polyfill

这种方案bable编译时,会自动导入目标浏览器(browserslist中配置)需要用到的polyfill,可以保证全局代码使用都可以新ES代码。但是,也许有些polyfill会一直用不到,额外增加了编译后的文件体积。

3.  使用balbe env,预置iview中所需要的polyfill(推荐做法)

修改bable.config.js 添加预导入的polyfill。目前我的项目中用到的polyfill有'es6.promise',‘es6.array.find-index',‘es7.array.includes',‘es6.string.includes'

这种方案依然使用Vue项目默认方案,不同的是在项目编译时,会导入polyfills中指定的polyfill,这样既可解决iview在ie中运行报错的问题。

上面中是我目前用到的几polyfill,如果需要其它铺垫,可以自行添加。

推荐阅读

  • 美团怎么预约订餐到店吃

    美团怎么预约订餐到店吃

    美团预约订餐,然后到店吃,需要在美团进行抢购订餐,最后去店面出示订单凭证即可。具体操作方法如下: 美团怎么预约订餐到店吃 1、打开手机美团app,点击美食”。 2、选择需要订餐的店家,点...

    阅读: 912

  • 如何制作自己的卡通头像

    如何制作自己的卡通头像

    制作自己的卡通头像,可以通过美图秀秀进行,借助美图秀秀的动漫化身功能即可生成卡通形象。具体操作方法如下: 如何制作自己的卡通头像 一、使用美图秀秀 1、打开手机美图秀秀app,点击工具箱”...

    阅读: 818

  • 不小心退出微信账号怎么登录

    不小心退出微信账号怎么登录

    不小心退出微信账号的话,只要记得密码或者微信绑定手机号,就可以重新进行登录。具体的操作方式如下: 不小心退出微信账号怎么登录 1、打开微信app,进入登录”界面。 2、进入登陆&rdqu...

    阅读: 869

  • 抖音怎么看谁取消关注了我了

    抖音怎么看谁取消关注了我了

    抖音不能直接看谁取消关注你,但如果对方曾经与你是互相关注的话,就可以查看对方是否把你取关了。具体的操作方式如下: 抖音怎么看谁取消关注了我了 1、打开抖音,点击进入我”的界面。 2、进入...

    阅读: 1242

  • 苹果实况照片怎么弄到抖音上

    苹果实况照片怎么弄到抖音上

    实况照片是iPhone手机上的一种拍照模式,可以让拍的照片动起来。将苹果实况照片弄到抖音上的具体操作方式如下: 苹果实况照片怎么弄到抖音上 1、打开抖音,点击界面中间的+”号, 进入拍摄界...

    阅读: 931

  • 苹果怎么关闭腾讯视频自动续费

    苹果怎么关闭腾讯视频自动续费

    可以通过腾讯视频app或者微信app关闭腾讯视频自动续费。苹果关闭腾讯视频自动续费的具体操作方式如下: 苹果怎么关闭腾讯视频自动续费 一、以腾讯视频为例 1、打开腾讯app,进入vip会员&rdquo...

    阅读: 886