如果可以实现记得点赞分享,谢谢老铁~
一、问题的描述
突然收到业务方发来的反馈: 浏览器一片空白,开控制台输出:Uncaught Syntaxerror: Unexpected token ? 这个是语法错误。
二、 问题分析:
根据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 44'], // 需要兼容的目标列表,可以设置多个
additionalLegacyPolyfills: ['regenerator-runtime/runtime'], // 面向IE11时需要此插件
}),
]
})
3.当你build构建的时候,可能会报错:
Error: terser not found. Since Vite v3, terser has become an optional dependency. You need to install it.
安装依赖即可:
npm install terser