本文档涵盖了 Vite 项目贡献者的开发环境设置和工作流程。内容包括仓库设置、构建系统配置、开发工作流程和测试基础设施。
有关 CI/CD 流水线的信息,请参阅 CI/CD 流水线。有关文档系统详细信息,请参阅 文档系统。
Vite 是一个使用 pnpm workspaces 的 monorepo,具有专为模块化开发设计的目录结构。
来源:CONTRIBUTING.md1-356 packages/vite/rolldown.config.ts1-417
设置过程遵循特定顺序,以确保正确的依赖解析和构建准备。
构建系统使用 Rolldown,并针对不同的输出目标和开发场景提供多种配置。
来源:packages/vite/rolldown.config.ts16-181 packages/vite/rolldown.dts.config.ts36-53
开发工作流程整合了多种工具和流程,以实现高效的贡献开发。
| 组件 | 目的 | 关键文件 | 命令 |
|---|---|---|---|
| 包管理器 | 工作区管理 | pnpm-workspace.yaml, package.json | pnpm i, pnpm run build |
| 类型系统 | TypeScript 编译 | tsconfig.json, src/*/tsconfig.json | pnpm run build-types-check |
| 构建系统 | 包生成 | rolldown.config.ts, rolldown.dts.config.ts | pnpm run build |
| 开发服务器 | 实时重新加载 | packages/vite/src/node/ | pnpm run dev |
| 测试框架 | 验证 | vitest.config.e2e.ts, playground/ | pnpm test |
| 文档 | VitePress 文档 | docs/, vite.config.ts | pnpm run docs |
来源:CONTRIBUTING.md11-47 packages/vite/rolldown.config.ts1-417
测试系统结合了使用 Vitest 和 Playwright 的单元测试和集成测试。
不同平台需要特定的配置调整,以获得最佳开发体验。
Windows 配置
core.symlinks = true 配置 gitGit 配置
.git-blame-ignore-revs 以处理格式更改开发环境支持多种调试方法,以应对不同场景。
Vite 遵循特定的依赖管理模式,以保持轻量级包和正确类型的支持。
| 类别 | 位置 | 目的 | 示例 |
|---|---|---|---|
| 运行时依赖 | dependencies (依赖项) | 运行时必需 | rollup, esbuild |
| 开发依赖项 | devDependencies (开发依赖项) | 仅构建时使用(预打包) | 大多数 npm 包 |
| 对等依赖项 | peerDependencies (对等依赖项) | 可选的框架支持 | 框架插件 |
| 类型依赖项 | devDependencies (开发依赖项) | TypeScript 类型 | @types/* 包 |
(await import('somedep')).default 而非 require()packages/vite/src/types 中为已打包的依赖项内联类型构建系统包含多个验证步骤,以确保代码质量和兼容性。
来源:CONTRIBUTING.md76-77 packages/vite/rolldown.dts.config.ts216-265