EasyBuild Admin 是一套业务无关的企业级中后台前端脚手架。它提供的不是某一个具体的业务系统,而是一套 可复用、可扩展、可快速交付 的通用中后台解决方案。
无论是零售电商、仓储物流、内容运营、企业 OA,还是任何需要后台管理的业务场景,都可以基于此脚手架快速搭建,实现从 0 到 1 的高效落地。
https://github.com/jackliuyijun/easybuild-adminhttps://www.npmjs.com/package/easybuild-admin这是本脚手架 最核心的设计理念 —— 前端不决定“有什么菜单”,后端说了算。
坚持 “选最新的、用最稳的” 原则,所有技术选型均为当前社区最活跃、生态最健全的方案:
| 领域 | 技术方案 | 核心优势 |
|---|---|---|
| 应用框架 | Next.js 15 + React 19 | 利用 React Server Components (RSC) 优化首屏并行渲染。 |
| 类型系统 | TypeScript 5.x | 全链路类型安全,从 API 到组件一气呵成。 |
| UI 体系 | Shadcn/ui + Radix UI + Tailwind CSS | 无障碍合规、主题灵活、零运行时 CSS 开销。 |
| 状态管理 | Zustand + TanStack React Query v5 | 极简 Store + 智能服务端缓存,告别样板代码。 |
| 表单引擎 | React Hook Form + Zod | 高性能非受控表单 + 声明式校验。 |
| 数据表格 | TanStack Table v8 | 配置化表格逻辑,支持虚拟滚动及复杂元数据渲染。 |
| HTTP 通信 | Axios (统一封装) | 拦截器链式处理,Token 自动注入,异常统一兜底。 |
脚手架内置了一套精心设计的 高级业务组件,封装了中后台最常见的交互模式:
showMessage、showError、showWarning、showLoading。一行命令即可创建项目,自动完成模板下载、项目信息替换、Git 初始化和依赖安装:
npx easybuild-admin my-project也可以通过参数跳过交互,直接创建:
# 指定项目名 + 描述 + 包管理器
npx easybuild-admin my-project -d "我的管理后台" --pm yarn
# 只下载模板,不初始化 git 也不安装依赖
npx easybuild-admin my-project --skip-git --skip-install如果不使用 CLI,也可以直接从 GitHub 获取代码:
git clone https://github.com/jackliuyijun/easybuild-admin.git my-project
cd my-project
yarn install# 安装依赖 (Yarn v4)
yarn install
# 启动开发服务器 (默认端口: 4000)
yarn dev
# 生成生产环境构建产物
yarn build:prod
# 静态代码检查与质量控制
yarn lintsrc/
├── api/ # API 模块化定义,按业务域拆分文件 (e.g., auth.ts, user.ts)
├── app/ # App Router 路由。包含 layout.tsx, page.tsx 及 api 路由
├── components/ # 组件库
│ ├── ui/ # 基类原子组件 (Shadcn/ui)
│ ├── custom/ # 核心业务高级组件 (CustomForm, CustomTable 等)
│ └── icons/ # 内部使用的图标资源
├── config/ # 全局静态配置文件 (如主题配色、环境常量)
├── constants/ # 业务常量声明 (枚举、响应码等)
├── hooks/ # 通用的自定义 Hooks 及 React Query 的封装
├── lib/ # 外部库实例化 (Axios, Lucide, Crypto-JS 等)
├── store/ # Zustand 状态切片定义
├── styles/ # Tailwind 指令、全局 CSS 变量、自定义 Animations
├── types/ # 全局 TypeScript 类型声明 (.d.ts)
└── middleware.ts # Next.js 中间件逻辑use 开头;类型文件以 .types.ts 结尾。any。所有 API 请求遵循统一的 请求-响应-异常 三层处理机制:
UN_LOGIN (跳回登录)、网络超时、业务错误弹窗兜底,禁止在页面内重复编写 try-catch。// 后端接口统一返回标准结构:
{
"code": "OK", // 状态码:OK / UN_LOGIN / UN_AUTH / ERROR
"data": { ... }, // 业务数据
"msg": "操作成功", // 提示信息
"count": 100 // 分页总数(列表接口)
}所有业务模块的接口遵循 统一命名规范,例如 /{domain}/{module}/queryPage (分页查询)、/{domain}/{module}/addOrEdit (新增/修改)、/{domain}/{module}/disable (状态切换)、/{domain}/{module}/delete (删除)。
使用本模版创建新项目后,请按照以下清单逐一修改,完成项目初始化。
| 文件 | 需改动项 | 说明 |
|---|---|---|
package.json | name、version | 将 "easybuild-admin" 改为你的项目名称,版本号按需设置。 |
src/app/layout.tsx | metadata.title、metadata.description | 修改浏览器标签页标题与 SEO 描述,替换 "EasyBuild Admin - 易构" 为你的项目名称。 |
src/config/login/login-config.ts | name、description、subDescription | 登录页的品牌名称和描述文案,直接替换即可。 |
public/favicon.ico | 网站图标 | 替换为你自己的 Favicon。 |
| 文件 | 需改动项 | 说明 |
|---|---|---|
.env.development | NEXT_PUBLIC_API_URL、NEXT_PUBLIC_APP_NAME、NEXT_PUBLIC_UPLOAD_API_URL | 开发环境的后端 API 地址和文件上传地址。 |
.env.test | 同上 | 测试环境配置。 |
.env.production | 同上 | 生产环境配置。 |
src/config/api-url.ts | API_URLS 对象 | 核心文件。删除模版中的示例接口路径(如 brand、banner 等),替换为你自己的业务接口地址。auth 部分如果后端的规则相同可以保留。 |
模版内置的以下目录包含 示例业务代码,创建新项目时应 全部删除 并替换为自己的业务模块:
| 目录 / 文件 | 说明 |
|---|---|
src/app/base/ | 示例:品牌、分类、分组、标签管理页面 |
src/app/commodity/ | 示例:商品、SPU 管理页面 |
src/app/operation/ | 示例:Banner 运营管理页面 |
src/app/order/ | 示例:订单、退款管理页面 |
src/app/customer/ | 示例:用户/会员管理页面 |
src/app/businesses/ | 示例:商超管理页面 |
src/app/system/ | 示例:字典管理页面 |
src/api/ 中的业务文件 | 如 goods.ts、banner.ts 等。按需新增API。请 保留 http.ts(Axios 封装)和 upload.ts(文件上传)。 |
src/types/ 中的业务类型 | 如 goods.ts 等。请 保留 api.ts(通用响应)和 token.ts(Token)。 |
src/app/auth/(部门/角色/员工权限管理)和 src/app/login/(登录页)属于通用鉴权能力,如果后端接口兼容可直接复用。| 文件 | 需改动项 | 说明 |
|---|---|---|
src/config/routes.ts | iconMap、colorMap | 菜单图标和颜色由后端下发的 resourceId 匹配。删除示例映射,新增对应的图标(从 lucide-react 导入)和颜色。 |
| 文件 | 需改动项 | 说明 |
|---|---|---|
src/config/constants.ts | API_CODE | 如果后端返回的响应状态码不同(如 SUCCESS 替代 OK),需在此修改。 |
src/config/theme-colors.ts | 主题色配置 | 可新增/删除主题配色方案,或修改默认主题。 |
src/config/pagination.ts | DEFAULT_PAGE_SIZE、PAGE_SIZE_OPTIONS | 分页默认值调整。 |
src/middleware.ts | 路由守卫规则 | 当前仅放行 /login,如需配置请修改。 |
src/lib/auth.ts | Token 存储键名 | 如果 localStorage 键名不同需调整。 |
src/api/http.ts | 请求头 / 超时配置 | 调整 Token 请求头名称及默认超时。 |
✅ 1. 修改 package.json 项目名
✅ 2. 配置三个 .env 文件的 API 地址
✅ 3. 修改 login-config.ts 和 layout.tsx 中的品牌信息
✅ 4. 删除 src/app/ 下的示例业务页面
✅ 5. 清理 src/api/ 和 src/types/ 中的示例文件
✅ 6. 在 api-url.ts 中定义自己的接口路径
✅ 7. 在 routes.ts 中配置菜单图标映射
✅ 8. 替换 public/favicon.ico需要后端接口配合,后端接口示例项目地址:https://github.com/jackliuyijun/easybuild-admin-api.git