最近一个医院的项目,遇到有些电脑能访问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' ] }), ] });