Skip to content

Vue 工程化全景

Vue 3 项目的工程化链条:从包管理、Lint、测试到 CI、目录组织与组件设计模式。本文件是导航,配合 learning-path/engineering/ 下 10 个 demo 使用。

六大维度

维度关注点关键工具工程 demo
包管理monorepo、构建顺序、依赖共享pnpm workspace、Turborepo01
构建打包体积、chunk 拆分、TypeScriptVite、插件顺序、路径别名07, 08
Lint / 格式代码风格、提交门禁ESLint flat config、Prettier、Husky02, 04
测试单元 / 组件 / 快照Vitest、@vue/test-utils03
CI自动化、缓存、并行GitHub Actions、pnpm cache05
目录组织分层 / 切片、单向依赖FSD、Layered、alias09
编辑器团队体验一致VSCode settings.json06
组件模式复用边界、API 设计Container / Headless / Compound10

选型决策树

新项目启动?

  ├─ 单仓库 / 单应用 → 标准分层 + pnpm

  ├─ 多应用共享 UI → pnpm workspace + 拓扑构建

  ├─ 大型多团队 → FSD 切片

  └─ 已有仓库升级 → flat config 渐进迁移

学习路径

按推荐顺序浏览:

  1. 01.monorepo-vue-pnpm — 包管理与构建顺序
  2. 02.eslint-config-typescript-vue — 代码质量门禁
  3. 03.vitest-vue-snapshot — 测试基线
  4. 04.git-hooks-husky-lint — 本地提交门禁
  5. 05.ci-caching-pnpm — CI 缓存策略
  6. 06.vscode-settings-recommended — 编辑器一致
  7. 07.vite-plugin-order — 构建工具链
  8. 08.path-aliases — 路径别名同步
  9. 09.layer-based-architecture — 代码组织
  10. 10.component-design-patterns — 组件 API 设计

关键工具一览

工具作用配置位置
pnpm包管理pnpm-workspace.yaml
Vite构建vite.config.ts
TypeScript类型tsconfig.json
ESLintLinteslint.config.js
Prettier格式.prettierrc
Vitest测试vitest.config.ts
Huskygit hook.husky/
lint-staged暂存 lintpackage.json
commitlintcommit 校验commitlint.config.js
GitHub ActionsCI.github/workflows/

官方资源