众所周知,Vite 已然占据 web 开发的半壁江山。无论是 Vue 项目还是 React 项目,我都习惯使用 Vite 去开发构建。但是,有个问题一直困扰着我,那就是,项目需要兼容 Chrome 72 版本的浏览器,虽然采用了 @vitejs/plugin-legacy插件做兼容,但是此插件只在build阶段生效,serve阶段不生效,这就导致项目只能在高版本浏览器中开发,项目的兼容性问题,我无法在开发阶段发现。基于此,我决定研究下怎么在低版本浏览器中运行Vite启动的项目。
前提
先来了解下 Vite,官网描述如下:Vite 是一种新型前端构建工具,能够显著提升前端开发体验。它主要由两部分组成:Chrome >= 63 Edge >= 79 Safari >= 11.1 FireFox >= 67 Opera >= 50 IE 全系不支持
我的电脑上现有 Chrome 72 版本的浏览器,满足条件,那就拿它来测试吧。
第一个 看了下 github,标星 35,有点不太靠谱。再看第二个,官方插件,稳定性还是值得肯定的,就你了。
pnpm i @rollup/plugin-babel @babel/preset-env -D
import { defineConfig } from 'vite'; import babel from '@rollup/plugin-babel'; // 堆代码 duidaima.com export default defineConfig({ plugins: [ babel({ include: [/\.vue$/, /\.ts$/, /\.tsx$/, /\.jsx$/, /\.js$/], presets: [ [ '@babel/preset-env', { useBuiltIns: 'usage', corejs: 3, targets: { chrome: '72', }, modules: false, }, ], ], }), ], });使用 @babel/preset-env 做兼容,下面解释下它配置项:
import { defineConfig } from 'vite'; import babel from '@rollup/plugin-babel'; export default defineConfig({ plugins: [ babel({ include: [/\.vue$/, /\.ts$/, /\.tsx$/, /\.jsx$/, /\.js$/], extensions: ['.vue', '.ts', '.js', '.tsx', '.jsx'], // 添加此行 presets: [ [ '@babel/preset-env', { useBuiltIns: 'usage', corejs: 3, targets: { chrome: '72', }, modules: false, }, ], ], }), ], });启动试试,项目启动成功!!