Vite(法语意为"快速")是新一代前端构建工具,由 Vue.js 创始人尤雨溪开发,具有以下核心特性:
极速启动:冷启动时间比传统工具快 10-100 倍
闪电热更新:HMR 更新速度不受项目规模影响
智能构建:生产环境使用 Rollup 打包
原生 ESM:基于浏览器原生 ES 模块系统
与传统打包工具对比
特性 |
Webpack |
Vite |
---|---|---|
启动机制 |
全量打包 |
按需编译 |
模块系统 |
模拟 CommonJS |
原生 ESM |
HMR 效率 |
线性增长 |
恒定时间 |
构建工具 |
自研打包 |
Rollup |
开发服务器 |
内存文件系统 |
真实文件系统 |
技术栈支持
技术 |
支持方式 |
示例配置 |
---|---|---|
Vue |
官方插件 |
@vitejs/plugin-vue |
React |
官方插件 |
@vitejs/plugin-react |
TypeScript |
原生支持 |
零配置 |
CSS 预处理器 |
内置支持 |
.scss/.less 直接导入 |
静态资源 |
智能处理 |
自动路径处理 |
快速开始:
# 创建项目
npm create vite@latest my-project -- --template vue-ts# 目录结构
my-project/
├── node_modules
├── src/
│ ├── main.ts
│ ├── App.vue
│ └── ...
├── index.html
├── vite.config.ts
└── package.json
// vite.config.ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
export default defineConfig({
plugins: [vue()],
resolve: {
alias: {
'@': '/src'
}
},
server: {
proxy: {
'/api': {
target: 'http://localhost:3000',
changeOrigin: true
}
}
},
build: {
rollupOptions: {
output: {
manualChunks: {
lodash: ['lodash-es']
}
}
}
}
})
性能优化:
构建优化策略
优化方向 |
实现方案 |
配置示例 |
---|---|---|
依赖预构建 |
optimizeDeps 配置 |
|
代码分割 |
动态 import + rollup 配置 |
|
图片压缩 |
vite-plugin-imagemin |
自动 PNG/JPG 优化 |
Gzip 压缩 |
vite-plugin-compression |
预生成压缩文件 |
加载优化方案
// 典型配置组合
export default defineConfig({
build: {
cssCodeSplit: true,
assetsInlineLimit: 4096, // 4KB以下资源内联
sourcemap: 'hidden',
minify: 'terser'
}
})
推荐使用场景
现代浏览器项目(Chrome >=61, Firefox >=60, Safari >=11)
框架新项目(Vue3/React18/Svelte)
库开发(利用 Rollup 的纯净打包)
微前端子应用(快速加载需求)
暂不推荐场景
需要支持 IE11 的项目
已有复杂 Webpack 配置的大型项目
需要深度自定义构建流程的特殊需求