(vite/webpack 通用)vue 白屏 Uncaught Syntaxerror: Unexpected token ‘?‘

如果可以实现记得点赞分享,谢谢老铁~

一、问题的描述

突然收到业务方发来的反馈: 浏览器一片空白,开控制台输出:Uncaught Syntaxerror: Unexpected token ? 这个是语法错误。
在这里插入图片描述

二、 如果是用vite来构建:

如果是用vite来构建的,根据vite官方文档描述,build.target默认支持 Chrome >=87、Firefox >=78、Safari >=14、Edge >=88 传送,所以需要我们手动兼容低版本

vite代码版本较高,导致低版本浏览器无法运行,结果是他那边浏览器的版本很低(谷歌44)导致的。

1.首先安装插件:npm i @vitejs/plugin-legacy -D
2.然后配置vite.config.js, 如图
import legacyPlugin from '@vitejs/plugin-legacy';
export default defineConfig({
  plugins: [
    legacyPlugin({
       targets: ["chrome < 60", "edge < 15"], // 需要兼容的目标列表,可以设置多个
      additionalLegacyPolyfills: ["regenerator-runtime/runtime"], // 面向IE11时需要此插件
      renderLegacyChunks: true,
     })
   ]
})
3.当你build构建的时候,可能会报错:
Error: terser not found. Since Vite v3, terser has become an optional dependency. You need to install it.

安装依赖即可:

npm install terser
重新打包、运行到浏览器,则低浏览器不会报错了

三、 如果是用webpack来构建:

需要先下载依赖

npm i @babel/polyfill  @babel/plugin-transform-runtime  @babel/preset-env -D
1.你需要在vue.config.js 里面进行配置:
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  configureWebpack:config => {
    config.entry.app = ["@babel/polyfill","./src/main.ts"]              
  },
})
2.然后再babel.config.ts 里面进行配置:
module.exports = {
  presets:[
     ["@vue/app",{
        polyfills:[
           "es6.promise",
           "es6.symbol",
           "es6.array.iterator",
           "es6.object.assign"
        ],
        useBuiltIns:"entry"
     }]
  ]
}
重新打包、运行到浏览器,则低浏览器不会报错了

PS: 亲测谷歌版本 < 50 的,都不支持,以上的均可支持,40+ 版本的请升级版本吧!

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端加油站

你遇到的坑将由我来踩

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值