📦 一、必须引入的六大类包
基础框架层
text
vue - 核心框架
vue-router - 单页应用路由管理
pinia/vuex - 全局状态管理(推荐Pinia)
业务作用:构成应用骨架,决定数据流和组件组织方式。UI组件与样式层
text
element-plus/ant-design-vue/vant - 组件库(选其一)
sass/less - CSS预处理器
tailwindcss - 原子化CSS(可选但推荐)
业务作用:统一视觉规范,提高开发效率,保证设计一致性。网络请求层
text
axios - HTTP客户端
mockjs - 本地数据模拟(开发用)
业务作用:统一接口调用规范,支持Mock数据便于前后端并行开发。工具与工具链层
text
lodash-es - 工具函数库
dayjs - 日期处理
vueuse - Vue组合式API工具集
业务作用:提供常用工具,避免重复造轮子。工程化与质量层
text
eslint - 代码规范检查
prettier - 代码格式化
husky - Git钩子
lint-staged - 提交前检查
vite - 构建工具(现代项目推荐)
业务作用:保证代码质量,统一团队编码风格,自动化检查。性能与监控层
text
nprogress - 页面加载进度条
@vueuse/head - Head管理(SEO优化)
vconsole - 移动端调试(开发用)
业务作用:提升用户体验,便于线上问题排查。
🏗️ 二、架构层面要做的七件事
- 项目初始化配置
✅ 环境变量配置(.env.development, .env.production)
✅ 路径别名配置(@ -> src,方便引用)
✅ 构建工具配置(vite.config.js / vue.config.js)
✅ 代码规范配置(.eslintrc, .prettierrc)
- 网络请求体系设计
✅ 统一的请求拦截器(token注入、错误统一处理)
✅ 统一响应拦截器(状态码解析、错误提示)
✅ API模块化组织(按业务模块拆分)
✅ 请求取消与防重复提交机制
- 路由与权限体系
✅ 路由分层设计(基础路由、业务路由)
✅ 动态路由加载(根据权限动态加载路由)
✅ 路由守卫配置(登录验证、权限校验)
✅ 404/403页面处理
- 状态管理体系
✅ 全局状态设计(用户信息、系统配置等)
✅ 模块化状态(user模块、app模块、settings模块)
✅ 持久化方案(token、用户偏好等存储到localStorage)
✅ TypeScript支持(状态类型定义)
- 组件体系设计
✅ 基础组件库(按钮、输入框等)
✅ 业务组件库(与业务相关的可复用组件)
✅ 布局组件(头部、侧边栏、页脚)
✅ 全局组件注册
- 样式与主题体系
✅ CSS变量定义(主题色、间距、字体等)
✅ 全局样式重置(normalize.css或reset.css)
✅ 主题切换机制(亮色/暗色模式)
✅ 响应式断点设计
- 开发规范制定
✅ Git提交规范(commitlint + conventional-changelog)
✅ 目录结构规范(组件、页面、工具的组织方式)
✅ 命名规范(组件、文件、变量命名规则)
✅ 代码审查清单
📋 三、完整的包清单(业务视角)
bash
========== 基础框架 ==========
npm install vue vue-router pinia
========== UI与样式 ==========
npm install element-plus
npm install sass
npm install tailwindcss postcss autoprefixer -D
========== 网络请求 ==========
npm install axios
npm install mockjs -D
========== 工具库 ==========
npm install lodash-es dayjs vueuse
npm install nprogress
========== 开发工具 ==========
npm install @types/node -D
npm install vite -D # 或 vue-cli-service(旧项目)
========== 代码质量 ==========
npm install eslint prettier -D
npm install husky lint-staged -D
npm install @commitlint/cli @commitlint/config-conventional -D
========== 类型支持 ==========
npm install typescript @vue/tsconfig -D
🎯 四、业务模块划分建议
在包引入完成后,架构上要建立清晰的业务边界:
按功能划分
text
src/
├── modules/ # 业务模块(按领域划分)
│ ├── user/ # 用户模块
│ ├── order/ # 订单模块
│ └── product/ # 产品模块
├── shared/ # 共享资源
│ ├── components/ # 全局组件
│ ├── utils/ # 工具函数
│ └── constants/ # 常量定义
└── core/ # 核心层
├── api/ # 接口层
├── router/ # 路由层
└── store/ # 状态层
按角色划分
用户端模块(customer/)
管理后台模块(admin/)
移动端模块(mobile/)
🚀 五、搭建完成后的检查清单
技术栈完整性检查
是否支持TypeScript(可选但推荐)
是否配置了代码规范工具
是否配置了Git提交规范
是否建立了Mock数据机制
是否设计了错误处理策略
业务支撑能力检查
是否支持多环境(开发、测试、生产)
是否支持主题切换
是否支持国际化(i18n)
是否支持权限控制(RBAC)
是否支持微前端架构(可选,大型项目)
开发体验检查
是否配置了热重载
是否配置了代理解决跨域
是否配置了打包分析工具
是否配置了组件文档工具(如Storybook)
💡 六、一句话总结
一个完整的前端技术栈 = Vue3生态 + UI组件库 + 网络请求层 + 状态管理 + 工具链 + 代码规范体系 + 业务分层架构
按照这个架构搭建的项目,能够支撑从小型项目到大型企业级应用的演进,具有良好的可维护性、可扩展性和团队协作性。