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

这篇具有很好参考价值的文章主要介绍了(vite/webpack 通用)vue 白屏 Uncaught Syntaxerror: Unexpected token ‘?‘。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

一、问题的描述

突然收到业务方发来的反馈: 浏览器一片空白,开控制台输出:Uncaught Syntaxerror: Unexpected token ? 这个是语法错误。
(vite/webpack 通用)vue 白屏 Uncaught Syntaxerror: Unexpected token ‘?‘,vue,vue.js,vite

二、 如果是用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来构建:

需要先下载依赖文章来源地址https://www.toymoban.com/news/detail-755713.html

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+ 版本的请升级版本吧!

到了这里,关于(vite/webpack 通用)vue 白屏 Uncaught Syntaxerror: Unexpected token ‘?‘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包