Vuetify3项目报错:TypeError: globalStack.at is not a function at stack.ts:57 Uncaught(in promise) Type

我的前端项目用的是vuetify3+vite,
我想要把新项目跑在微信开发者工具上,来测试一些微信接口
但是在浏览器中运行是正常的,开发者工具中运行后页面无法加载,控制台报错
vue-router.mjs:3524 TypeError: globalStack.at is not a function at stack.ts:57
在这里插入图片描述

但是打包上传后的项目又不会报错,我试过多种浏览器都不会报错,这种情况似乎只出现在了微信开发者工具中的浏览器中,并且仅发生在服务器端渲染和生产模式下。公司的大神研究了一早上才找到的解决方式,我这算是借花献佛了,自己也记录一下

这个报错似乎和vuetify3组件有某些关系,类似v-autocomplete组件,v-select组件,我猜想可能是因为vuetify3组件底层使用到了.at()这个函数去处理数组,达到选中下拉选项的目的,但是这个函数又是后面新增的特性,旧的浏览器无法兼容识别这个函数导致报错

vuetify中官网有支持的浏览器类型 点击这里

它说明了,如果要支持旧版浏览器也许可以通过这两种插件来实现,在你必须要使用vuetify3的情况下,如果出现了这个报错,你可以参考它说的这个polyfills和PostCSS plugins来解决旧版浏览器兼容问题,

在这里插入图片描述

我踩过的坑,你就别踩了

如果你的情况和我是一致的,以下是我自己试过的一些没有作用的方法
(全网我都替你们找过了,没有有用的解决方法,我本人也折腾了一早上) 😭

  • 有人说升级node版本到16.6以上,我自己本身是18.0.0,所以这个方法并没有作用
  • 还有人说是依赖不是最新,或则依赖间有冲突,所以我试了他们推荐得这种方法来更新依赖,也没有效果
npm install -g npm-check-updates
ncu
ncu -u
  • 我还试过更新微信开发者工具到最新版本,并且后面还不行又重新卸载了,删除得干干净净再安装,这个也不行
  • 还有说设置微信开发者工具选项的,都没有任何效果

咱也不太懂,只管解决问题,报错指向的都是 at() 函数,at()函数是新特性,微信开发者工具中的浏览器不兼容这种方式,所以导致的报错,也不知这个开发者工具的浏览器内核是多少的,肯定是挺老的

至于为什么打包后这个情况会消失,大概是因为,一是平时我们正式使用的浏览器都比较新,二是可能vite打包会自动处理兼容的情况,具体的就不得而知了


解决方式

既然是浏览器的兼容问题,只要.at()类似的报错应该都可以使用这种方式

这里的 core-js应该和vuetify官网中推荐的的polyfills有同样的效果

在这里插入图片描述

仅需要两个步骤

安装core-js (我用的是pnpm,根据自己情况使用)

pnpm add core-js  --save

在main.js中引入

import 'core-js/features/array/at'

而后重新运行项目即可在微信开发者中运行

!!! 家人们请给我疯狂点赞好吗,这都是血和泪换来的经验 😄

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值