入门
Vite 概述与安装
Vite 简介与核心特性
教程文章Vite 是新一代前端构建工具,利用原生 ESM 提供极速开发体验,核心特性包括快速冷启动、即时热更新和按需编译。
package.json 脚本命令
教程文章Vite 项目 package.json 包含 dev、build、preview 三个核心脚本,分别用于开发、构建和预览。
创建首个 Vite 项目
教程文章使用 create-vite 脚手架快速创建 Vite 项目,支持多种模板选择,创建后即可启动开发服务器。
环境要求与安装方式
教程文章Vite 需要 Node.js 18+ 环境,支持 npm、pnpm、yarn 多种安装方式,本文介绍具体要求与安装命令。
项目目录结构解析
教程文章Vite 项目目录结构简洁清晰,包括 index.html 入口、src 源码目录、public 静态资源目录等核心结构。
开发服务器与热更新
基础配置入门
静态资源处理
CSS 与样式处理
环境变量与模式
构建与部署
进阶
配置文件深入
define 定义全局常量
教程文章使用 define 选项定义全局常量,编译时替换变量值,适合版本号、构建时间等固定信息注入。
共享配置抽取
教程文章抽取公共配置到独立文件,在多环境间复用,通过组合策略实现配置统一管理和灵活扩展。
条件配置与异步配置
教程文章Vite 配置支持函数形式返回配置对象,可根据 command 和 mode 动态调整配置,也支持异步加载配置。
解析选项与扩展名
教程文章配置 resolve.extensions 自定义模块扩展名解析,简化导入语句,省略文件后缀书写。
配置依赖与热更新
教程文章配置 configFile 和 envDir 选项,控制配置文件和环境变量的加载位置,支持配置变更自动重启。
插件系统
模块化与依赖预构建
TypeScript 深度集成
Vue/React 类型支持
教程文章配置 Vue 单文件组件和 React JSX 的类型声明,确保 TypeScript 正确识别组件类型和 JSX 语法。
TypeScript 配置优化
教程文章配置 tsconfig.json 与 Vite 协同工作,正确设置 moduleResolution、paths 与 vite.config.js 的 alias 保持一致。
esbuild 转译配置
教程文章配置 esbuild 对 TypeScript 的转译选项,支持装饰器、JSX 工厂函数自定义等高级配置。
引用类型声明文件
教程文章配置 compilerOptions.types 指定类型声明文件,或使用三斜线指令引用,管理全局类型声明。
类型检查策略
教程文章Vite 开发环境不执行类型检查,需集成 vue-tsc 或 tsc 进行类型检查,建议在构建流程中运行。
框架集成实践
React 项目配置
教程文章使用 @vitejs/plugin-react 支持 React 项目,配置 Fast Refresh 快速热更新和 JSX 转译选项。
Svelte 项目配置
教程文章使用 @sveltejs/vite-plugin-svelte 支持 Svelte 项目,配置预处理器和编译选项。
JSX/TSX 转译配置
教程文章配置 esbuild 或 Babel 转译 JSX/TSX,自定义 JSX 工厂函数支持不同框架的组件创建方式。
Vue 项目配置
教程文章使用 @vitejs/plugin-vue 支持 Vue 3 单文件组件,配置 JSX 和其他 Vue 特定选项。
框架特定的构建优化
教程文章针对不同框架配置构建优化选项,Vue 配置 compilerOptions,React 配置 babel 选项,提升产物质量。
构建优化策略
Chunk 大小警告处理
教程文章配置 build.chunkSizeWarningLimit 调整 chunk 体积警告阈值,或优化分包策略解决警告问题。
Source Map 生成策略
教程文章配置 build.sourcemap 控制源映射生成方式,支持 false、true、'inline'、'hidden' 等选项。
代码分割策略
教程文章配置 build.rollupOptions.manualChunks 自定义代码分割策略,将依赖和业务代码合理拆分优化加载性能。
压缩配置优化
教程文章配置 build.minify 选择 esbuild 或 terser 压缩,esbuild 速度快适合默认场景,terser 功能全面适合极致优化。
库模式构建
教程文章配置 build.lib 打包组件库或工具库,输出 ES Module 和 CommonJS 格式,支持 TypeScript 类型生成。
资源内联阈值配置
教程文章配置 build.assetsInlineLimit 控制小资源内联阈值,小于阈值的资源转为 base64 内联减少请求。
CSS 高级处理
CSS Minify 配置
教程文章配置 build.cssMinify 控制生产环境 CSS 压缩,支持 esbuild、Lightning CSS 或自定义压缩工具。
CSS 代码分割
教程文章理解异步 chunk 的 CSS 提取与注入策略,CSS 随 JS chunk 分割或合并,影响加载顺序。
CSS 预处理器高级配置
教程文章为 Sass/Less 配置 API 选项、额外导入路径、全局变量注入等高级配置,提升预处理器使用效率。
Lightning CSS 集成
教程文章配置 css.transformer 使用 Lightning CSS 加速 CSS 处理,支持 CSS Nesting 等现代特性。
开发服务器高级配置
SSR 基础
专家
插件开发原理与实践
Rollup 钩子兼容性
教程文章Vite 插件兼容 Rollup 钩子,开发环境部分钩子不执行,构建时完整执行 Rollup 钩子,需注意环境差异。
Vite 插件 Hook 体系
教程文章Vite 插件 Hook 分为 Vite 特有钩子和 Rollup 兼容钩子,config、transform、load、resolve 等钩子在不同阶段执行。
插件过滤与性能优化
教程文章使用 createFilter 精确过滤处理文件,配合缓存策略和异步处理优化插件执行性能。
编写 load 钩子插件
教程文章load 钩子用于自定义模块加载,支持虚拟模块和动态生成代码,返回模块内容替代默认文件读取。
编写 resolveId 钩子插件
教程文章resolveId 钩子用于自定义模块路径解析,支持自定义导入路径映射、别名扩展和虚拟模块识别。
编写 transform 钩子插件
教程文章transform 钩子用于模块转换,实现自定义文件类型处理或语法扩展,返回转换后的代码和 Source Map。
构建原理与底层机制
ESM 原生加载原理
教程文章Vite 利用浏览器原生 ESM 能力,开发环境按需编译模块,不打包整个应用,实现毫秒级冷启动。
HMR 边界计算算法
教程文章HMR 边界判断确定热更新传播范围,从修改模块向上查找直到遇到 HMR 边界,边界内模块全部更新。
Rollup 生产构建原理
教程文章Vite 生产构建使用 Rollup,构建模块图、分析依赖关系、分割 chunk,生成优化后的静态产物。
esbuild 预构建优化
教程文章esbuild 在依赖预构建中提供极速编译速度,比 JavaScript 工具快 10-100 倍,但存在功能限制。
模块图与依赖分析
教程文章Vite 模块图追踪所有模块依赖关系,支持动态导入分析、循环依赖处理和 HMR 边界计算。
高级性能优化
Bundle 分析与优化
教程文章使用 rollup-plugin-visualizer 分析产物体积分布,识别大依赖和冗余代码,针对性优化构建产物。
Tree Shaking 深度优化
教程文章分析副作用标记与模块导出优化,确保 Tree Shaking 有效移除未使用代码,减小产物体积。
Web Worker 与多线程优化
教程文章使用 ?worker 参数拆分计算密集任务到独立线程,不阻塞主线程渲染,提升复杂计算场景性能。
动态导入与懒加载策略
教程文章设计路由级懒加载与组件预加载策略优化首屏,按需加载非首屏内容,提升页面加载性能。
构建缓存与增量构建
教程文章配置持久缓存与增量构建策略加速开发体验,减少重复编译时间,提升构建效率。