vite项目低版本浏览器兼容性问题

这篇具有很好参考价值的文章主要介绍了vite项目低版本浏览器兼容性问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

技术:vite+vue3.2+ts+element-plus

开发环境没有问题,但是打包后的代码放到正式环境,页面空白...

现场的小伙伴发来报错问题 

Uncaught SynntaxError:Unexpected token ?

vite项目低版本浏览器兼容性问题

纳尼,这这这...什么原因,一头雾水

用火狐浏览器访问,没有报错,开始狂摆...时间一点点流逝,全网没有找到解决方法....

猜测谷歌浏览器版本问题,测试了90版本,页面出来了!用户用的浏览器大部分是65和70的,太老了吧

定位到问题就好办了!换关键词搜索“vite低版本浏览器兼容问题”,果然很多人遇到问题

问题分析:

浏览器内核版本太低,导致用浏览器打开,会出现白屏。该语句是ES6的新语法,一般浏览器都没有问题,但低版本的浏览器无法解析该语句,所以要进行js转换,一般的vue2项目我们会使用babel,但vite里不好使用babel,需引入另一个插件,他可以把指定文件转译成目标文件,如ts->js,话不多说,贴代码。
 

目标文件是vite.config.ts,首先要引入该文件

安装

npm install @vitejs/plugin-legacy -D

npm add -D terser //这个一定得安装,不然打包会报错

必须安装Terser压缩器,因为插件Legacy,使用Terser进行压缩,不压缩,整个包会大2Mb

// vite.config.js
import legacy from '@vitejs/plugin-legacy'

export default {
  plugins: [
      vue(),
    legacy({
      targets: ['defaults', 'not IE 11'],
    }),
  ],
}

配置完,重新打包继续测试,内网的70浏览器已经可以打开,可是65还是不行!

考虑让用户直接升级浏览器,好像不现实,只能默默的解决65的问题

本地下载65的浏览器测试起来,果然一个报错 globalThis is not defined

vite项目低版本浏览器兼容性问题

ap.vue 中添加

 <script>
    !(function (t) {
      function e() {
        var e = this || self;
        (e.globalThis = e), delete t.prototype._T_;
      }
      "object" != typeof globalThis &&
        (this
          ? e()
          : (t.defineProperty(t.prototype, "_T_", {
              configurable: !0,
              get: e,
            }),
            _T_));
    })(Object);
  </script>

果然完美解决页面空白的问题!!

虽然可以打开页面了,但是同样控制台还是报了一堆的错误

修改了 vite.config.js 的配置

// vite.config.js
import legacy from '@vitejs/plugin-legacy'

export default {
  plugins: [
      vue(),
    legacy({
      targets: ['defaults', 'not IE 11'],

      additionalLegacyPolyfills: ['regenerator-runtime/runtime'], // 面向IE11时需要此插件
      modernPolyfills: true
      // polyfills: ['es.object.values', 'es.array.flat-map']
    }),
  ],
}

完美解决,控制台白白净净!!!

 参考文章:

vite + vue3 + ts 安装 @vitejs/plugin-legacy 兼容旧版浏览器 - vue3 项目实战vite项目低版本浏览器兼容性问题_vite 兼容性_紫轩阁的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-483726.html

到了这里,关于vite项目低版本浏览器兼容性问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue如何进行跨浏览器兼容性处理

    让我来和你聊一聊如何让你的Vue应用在不同的浏览器和操作系统上正常运行。 首先呢,我们要知道一个事实:不同的浏览器有不同的特点和偏好,就像每个人都有独特的个性和习惯一样。你想要让你的应用在每个人的浏览器上都正常运行,就要像交朋友一样,要尊重每个浏览

    2024年02月07日
    浏览(49)
  • IE浏览器兼容性视图设置数据解析

    兼容性视图设置注册表位置: HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerBrowserEmulationClearableListDataUserFilter 数据类型:REG_BINARY 数据结构: 一、数据头 8字节前缀(固定值:“411F00005308ADBA”) 4字节网址数目(低位字节在前) 4字节数据段长度(数据段长度(含自身长度4),

    2024年02月06日
    浏览(67)
  • socket.io 解决浏览器兼容性(WebSocket)

             在上一篇讲了 npm 上最流行的 WebSocket 库之一的 ws 库,那么本篇就来讲另外一个,就是 socket.io 库,socket.io 其实是一个兼容方案,当浏览器不支持 H5 的情况下就不能够使用上一篇内容讲的 WebSocket ,只能采用其他的方案,socket.io 就解决了关于浏览器的兼容。 Node实

    2023年04月21日
    浏览(58)
  • 前端浏览器的兼容性问题探讨和解决方案

    解决不同浏览器之间的兼容性问题,可以采取以下一些常用的解决方案: 使用 CSS Reset:不同浏览器对于默认样式的定义存在差异,使用 CSS Reset 可以将不同浏览器的默认样式重置为统一的基准样式,从而减少浏览器之间的差异。 使用 CSS Hack 或浏览器前缀:某些 CSS 属性或值

    2024年02月14日
    浏览(51)
  • 前端开发中常见的浏览器兼容性问题及解决方案

    提示:这里主要阐述浏览器兼容性产生的环境: 所谓的浏览器兼容性问题,是指 因为不同浏览器对同一段代码有着不同的解析,所造成页面显示效果不统一的情况。 为此,解决浏览器兼容,也成为了跨浏览器开发的一个核心问题。 当初微软不加入W3C,使得后者不采用IE的方

    2023年04月18日
    浏览(50)
  • html学习笔记12-HTML5、浏览器兼容性问题

    https://www.runoob.com/html/html5-intro.html HTML5是HTML最新的修订版本,2014年10月由万维网联盟(W3C)完成标准制定。 HTML5的设计目的是为了在移动设备上支持多媒体。 HTML5 中的一些有趣的新特性: 用于绘画的 canvas 元素 用于媒介回放的 video 和 audio 元素 对本地离线存储的更好的支持

    2024年02月11日
    浏览(46)
  • 8 款浏览器兼容性测试工具介绍,需要的赶紧收藏吧

    目录 前言 1、IETester 2、BrowserShots 3、Spoon Browser Sandbox 4、Browserstack 5、LambdaTest 6、Browserling 7、CrossBrowser Testing 8、Browsera 浏览器的兼容性问题,是指不同浏览器使用内核及所支持的HTML等网页语言标准不同,用户客户端的环境不同造成的显示效果不能达到理想效果。对于用户而言

    2024年02月13日
    浏览(44)
  • 体验DIY物联网浏览器(谷歌内核兼容性好支持H264视频播放)

    一、功能及快捷键说明(说明32位兼容64位,更多版本往下看) 功能及快捷键图说明,不可多得的浏览器,支持右键自定义菜单... 说明:以上功能图快捷键是基于最新版的调整制作,如有差异以实际版本为准,其他问题请留言    二、下载安装包 2.1 100.0.230版本 9i物联网浏览

    2024年02月09日
    浏览(57)
  • vue对于低版本浏览器兼容问题

    由于采用了vite3而不是vue-cli,所以以前的很多兼容方式都不能做。接下来就看一下vite是怎么做到低版本兼容的问题。 @vitejs/plugin-legacyds 官方唯一指定的兼容工具库,使用方式官网都有了 虽然有些确实是兼容了低版本,但是,有些工具库利用了些新的特性,页面还是报错。

    2024年02月12日
    浏览(50)
  • Vue3实现PDF文件预览 (低版本浏览器兼容)

    前言:         最近和小伙伴们一起合作完成一个企业级知识库项目,其中一个功能就是后端把所有格式的文件转换为PDF,前端实现渲染PDF文件从而实现预览,干了整整一周(考虑到低版本浏览器的兼容),试用了几种方案(iframe预览已被废弃,不适用本项目,想了解的同学

    2024年01月20日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包