最近一个医院的项目,遇到有些电脑能访问web页面,有些电脑无法访问。最后发现是浏览器版本不一样,老的浏览器版本不能正常访问,而新的浏览器可以访问。因为医院是内网环境,电脑数量又比较多,所以没办法一一去升级浏览器版本。
找了一些资料后得知可以使用@vitejs/plugin-legacy
来兼容老版本的浏览器。该插件可以为你的Vite项目生成适用于老版本浏览器的传统的基于ES5的构建包。
在你的Vite项目中运行以下命令来安装@vitejs/plugin-legacy
:
npm install --save-dev @vitejs/plugin-legacy
还需要安装一个依赖 npm iterser -D ,如果不安装的话可能打包时会出错
在Vite的配置文件(vite.config.js)中引入并注册@vitejs/plugin-legacy
插件:
export default defineConfig({
// 其他配置项...
plugins: [
// 注册 legacy 插件
legacy({
targets: ['ie >= 11', 'chrome <= 60'], // 需要兼容的目标列表,可以设置多个
additionalLegacyPolyfills: ['regenerator-runtime/runtime'],
renderLegacyChunks: true,
polyfills: [
'es.symbol',
'es.array.filter',
'es.promise',
'es.promise.finally',
'es/map',
'es/set',
'es.array.for-each',
'es.object.define-properties',
'es.object.define-property',
'es.object.get-own-property-descriptor',
'es.object.get-own-property-descriptors',
'es.object.keys',
'es.object.to-string',
'web.dom-collections.for-each',
'esnext.global-this',
'esnext.string.match-all'
]
}),
]
});