博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webpack打包vue项目IE报错,“对象不支持“use”属性或方法”
阅读量:4327 次
发布时间:2019-06-06

本文共 829 字,大约阅读时间需要 2 分钟。

问题:“对象不支持“use”属性或方法”

最近一个项目在IE10下遇到了问题,在此记录下解决方案。

 

首先IE下报错“对象不支持xx属性或方法”,意思就是代码中用了某个IE下没有的属性或方法,我们可以查看详细堆栈信息。

可以看到错误具体位置是这个文件的6:112699位置。

由于代码是压缩的,手动格式化后再看,这样看来就是tt这个对象没有use方法了,在IE10下加个debugger再看

果然tt.use为undefined,所以报错了。但是在IE11下并没有报错,接着在IE11下加个debugger再看

发现tt.__proto__.use方法是存在的,IE的调试工具不太直观换成chrome再看看

可以发现确实有一个tt.__proto__.use方法,所以可以得出结论,在IE11和chrome下,tt通过访问到了原型链上的use方法,进一步查资料发现IE10是不支持__proto__属性的,所以问题的根源找到了。

 

经过分析,此处代码应该是swiper中的,因为我在项目中引入了vue-awisome-swiper,而vue-awisome-swiper只是封装了swiper插件,所以还得去swiper代码下找,最后找到了node_module下的swiper目录

发现swiper使用了__proto__实现继承,定位到此处的代码,可以发现此处的if就是兼容IE10不兼容__proto__的,而这个if判断在build后丢失了,我猜测可能是由于babel6默认不支持IE系列,所以默认__proto__是存在的,而兼容__proto__的判断代码直接去掉了。

 

解决方案:引入polyfill

最后引入了这个polyfill解决了此问题,。

使用方法:在webpack入口文件的最上方引入即可

import 'proto-polyfill'

完。

 

转载于:https://www.cnblogs.com/tgxh/p/8927260.html

你可能感兴趣的文章
JDK5.0新特性系列---9.注释功能Annotation
查看>>
普通平衡树(指针splay)
查看>>
【HEOI 2018】Day2 T2 林克卡特树
查看>>
vue-cli中配置sass的方法
查看>>
使用CSS3 @font-face【实现个性化字体 】
查看>>
codereview tool
查看>>
input type=file 标签禁止让用户手动输入
查看>>
一个诡异的WCF问题
查看>>
自定义adapter 的getView方法被重复执行了n次的解决方法
查看>>
百度地图学习(一):HelloWorld开始
查看>>
常用命令
查看>>
day-4 python多进程编程知识点汇总
查看>>
android自定义View之钟表诞生记
查看>>
问卷调查
查看>>
ImageView的常用属性
查看>>
关于sso单点登录以及通过路径直接访问Servlet
查看>>
提高服务存活率-----定时唤醒,灰度进程
查看>>
服务器内访问laravel框架 404错误(宝塔)
查看>>
在Form_Load里面调用Focus无效
查看>>
HttpContext.GetOwinContext().Authentication 报错 解决办法
查看>>