vite5+vue3工程 打包发布到生产环境之后safari14的版本白屏报错如下 请问大佬们有遇到这个问题嘛。。高版本浏览器没有这个问题。。。
尝试使用plugin-legacy兼容低版本浏览器没有作用
import legacy from '@vitejs/plugin-legacy'
...
legacy({
targets: ['defaults','Safari >= 13','iOS >= 13'],
}),
vite5+vue3工程 打包发布到生产环境之后safari14的版本白屏报错如下 请问大佬们有遇到这个问题嘛。。高版本浏览器没有这个问题。。。
尝试使用plugin-legacy兼容低版本浏览器没有作用
import legacy from '@vitejs/plugin-legacy'
...
legacy({
targets: ['defaults','Safari >= 13','iOS >= 13'],
}),
这个问题可能是由于Safari 14对某些现代JavaScript特性的支持不足导致的。尽管你尝试使用了@vitejs/plugin-legacy
插件,但配置可能不足以解决Safari 14的兼容性问题。以下是一些可能的解决方案:
调整@vitejs/plugin-legacy
的配置:
确保你的targets
配置包含了Safari 14。你可以通过指定一个更具体的版本范围来确保兼容性。
import legacy from '@vitejs/plugin-legacy';
export default defineConfig({
plugins: [
legacy({
targets: ['defaults', 'Safari >= 14']
})
]
});
检查Polyfills:
Safari 14可能缺少某些ES2015+的特性支持,例如Promise
、fetch
等。确保你的项目中包含了必要的polyfills。你可以使用core-js
来提供这些polyfills。
安装core-js
:
npm install core-js
在你的入口文件(如main.js
或main.ts
)中添加:
import 'core-js/stable';
import 'regenerator-runtime/runtime';
@vitejs/plugin-legacy
仍然不能解决问题,你可以考虑使用Babel进行更彻底的代码转译。这通常涉及设置Babel的配置文件(如.babelrc
或babel.config.js
),并安装必要的Babel插件和presets。希望这些建议能帮助你解决问题!如果问题仍然存在,可能需要更详细的错误日志来进一步诊断。
解决 Safari 14 中的白屏问题,以下是步骤:
使用 npm 或 yarn 安装 @vitejs/plugin-legacy 插件:
npm install @vitejs/plugin-legacy --save-dev
或
yarn add @vitejs/plugin-legacy --dev
在 vite.config.ts
文件中添加并配置 @vitejs/plugin-legacy 插件:
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import legacy from '@vitejs/plugin-legacy';
export default defineConfig({
plugins: [
vue(),
legacy({
targets: ['defaults', 'not IE 11']
})
],
build: {
target: 'es2015'
}
});
6 回答2.9k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
3 回答4.2k 阅读✓ 已解决
6 回答1.9k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
很简单的,你用 🔗 Browserslist 然后输入
defaults, not IE 11
查看一下目标浏览器清单就知道为啥不行了。