This repository has been archived on 2026-05-19. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
obsidian/DEV/VITE/README.md
T

245 lines
5.8 KiB
Markdown
Raw Normal View History

2026-04-20 22:47:51 +08:00
---
tags: [DEV, VITE, build-tool, frontend]
create time: 2026-04-18
---
# Vite 构建工具
[配置详解](./配置详解.md) | [架构原理](./架构原理.md) | [优化实践](./优化实践.md)
## 概述
Vite 是下一代前端构建工具,以其极快的开发体验和优秀的生产构建性能著称。不同于传统构建工具的全量打包,Vite 利用浏览器原生 ES Module 能力,实现了真正的按需编译。
## 核心优势
🚀 **极速启动** - 无全量打包,启动时间 < 1s
⚡ **闪电 HMR** - 模块级热更新,保持应用状态
🎯 **统一工具链** - 开发/生产环境一致,配置简化
🔌 **丰富生态** - 官方插件支持主流框架
## 快速开始
### 项目创建
```bash
npm create vite@latest my-app -- --template react-ts
cd my-app
npm install
npm run dev
```
### 核心命令
| 命令 | 功能 | 使用场景 |
|------|------|----------|
| `npm run dev` | 启动开发服务器 | 日常开发调试 |
| `npm run build` | 生产环境构建 | 部署准备 |
| `npm run preview` | 预览构建产物 | 本地测试生产版本 |
## 核心概念
### 开发环境 vs 生产环境
```mermaid
graph LR
A[浏览器请求] --> B{环境判断}
B -->|开发| C[Dev Server]
B -->|生产| D[静态文件]
C --> E[ESM 按需编译]
E --> F[即时响应]
D --> G[CDN/HTTP 服务器]
```
### 构建流程对比
| 特性 | Vite | Webpack |
|------|------|---------|
| 启动速度 | < 1s | 10-30s |
| 热更新 | 模块级 < 100ms | 全量重编译 |
| 配置复杂度 | 低 | 高 |
| 构建产物 | Rollup 优化 | Webpack 打包 |
## 技术栈支持
### 前端框架
- ✅ React + TypeScript
- ✅ Vue 3 + TypeScript
- ✅ Svelte + TypeScript
- ✅ Preact + TypeScript
### 构建特性
- 📦 ES Modules 原生支持
- 🎨 CSS 预处理器
- 🔧 TypeScript 开箱即用
- 📡 Asset 资源处理
- 🔄 Dynamic Import 支持
## 项目结构建议
```
project/
├── src/
│ ├── assets/ # 静态资源
│ ├── components/ # 组件
│ ├── hooks/ # 自定义 Hooks
│ ├── lib/ # 工具库
│ ├── types/ # TypeScript 类型
│ ├── App.tsx # 根组件
│ └── main.tsx # 入口文件
├── public/ # 公共资源
├── vite.config.ts # Vite 配置
└── tsconfig.json # TypeScript 配置
```
## 基础配置示例
```typescript
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import path from 'path'
export default defineConfig({
plugins: [react()],
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
'@components': path.resolve(__dirname, './src/components')
}
},
server: {
port: 3000,
open: true
}
})
```
## 常见配置场景
### TypeScript 项目
```typescript
// tsconfig.json
{
"compilerOptions": {
"target": "ES2020",
"useDefineForClassFields": true,
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"module": "ESNext",
"skipLibCheck": true,
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx",
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true
}
}
```
### 环境变量
```typescript
// .env.development
VITE_API_URL=http://localhost:8080/api
VITE_DEBUG_MODE=true
VITE_MOCK_DATA=true
// 使用方式
const apiUrl = import.meta.env.VITE_API_URL
```
## 生态工具
### 官方插件
- `@vitejs/plugin-vue` - Vue 支持
- `@vitejs/plugin-react` - React 支持
- `@vitejs/plugin-legacy` - 传统浏览器兼容
### 推荐工具链
- **代码质量**: ESLint + Prettier
- **状态管理**: Zustand / Redux Toolkit
- **UI 组件**: Ant Design / MUI
- **路由**: React Router v6
- **HTTP 客户端**: Axios
## 学习路径
### 基础阶段
1. 掌握基本命令和配置
2. 理解开发/生产环境差异
3. 熟悉环境变量使用
### 进阶阶段
1. 深入构建配置
2. 学习插件开发
3. 性能优化实践
### 高级阶段
1. 理解底层架构原理
2. 定制化解决方案
3. 大型项目工程化
## 技术特点
### 为什么选择 Vite?
1. **开发效率提升**
- 零配置启动,开箱即用
- 热更新速度快,大幅提升开发体验
- 现代工具链,学习成本低
2. **构建性能优异**
- 基于 Rollup 的高质量产出
- 智能代码分割和 Tree-shaking
- 生产环境高度优化
3. **生态社区活跃**
- 官方支持和持续更新
- 丰富的插件生态
- 广泛的行业采用
## 与其他工具对比
| 工具 | 启动速度 | HMR 性能 | 构建质量 | 学习曲线 |
|------|----------|----------|----------|----------|
| Vite | ⚡⚡⚡ | ⚡⚡⚡ | ⚡⚡⚡ | ⚡⚡⚡ |
| Webpack | ⚡ | ⚡⚡ | ⚡⚡⚡ | ⚡ |
| Next.js | ⚡⚡ | ⚡⚡⚡ | ⚡⚡⚡ | ⚡⚡ |
| Parcel | ⚡⚡⚡ | ⚡⚡ | ⚡⚡ | ⚡⚡⚡ |
## 适用场景
### 推荐使用
- ✅ SPA 单页应用开发
- ✅ React/Vue 项目构建
- ✅ 中大型前端项目
- ✅ 需要快速开发迭代
### 需要评估
- 🤔 复杂的构建需求 (Web Workers, WASM)
- 🤔 高度定制化构建流程
- 🤔 遗留项目迁移成本
## 相关文档
- [[DEV/VITE/配置详解.md]] - 详细配置说明
- [[DEV/VITE/架构原理.md]] - 技术实现原理
- [[DEV/VITE/优化实践.md]] - 性能优化指南
- [[DEV/REACT/README.md]] - React 开发指南
## 技术资源
- [Vite 官方文档](https://vitejs.dev/)
- [Vite GitHub 仓库](https://github.com/vitejs/vite)
- [Vite 生态插件](https://github.com/vitejs/awesome-vite)
## 下一步行动
1. 创建一个新的 React + TypeScript 项目
2. 配置开发和生产环境
3. 实现 HMR 功能
4. 进行第一次生产构建