前言概述
DoraCMS 是我踩过无数坑后发现的一个宝藏项目——它采用 EggJS(阿里开源的企业级 Node 框架)3.x 作为后端,Vue 3 组合式 API 写前端,TypeScript 全程类型安全,MIT License 开源免费。项目代码结构清晰,适合二次开发,尤其适合中小团队快速搭建内容管理平台。我一开始也以为这种全栈项目配置会很复杂,结果发现它的脚手架已经帮你搞定了一切。
项目介绍
DoraCMS 是一个完整的前后端分离内容管理系统,后端提供 RESTful API,前端通过 Vue 3 渲染界面。它不是简单的博客系统,而是支持多类型内容(文章、图片、视频)管理、用户权限分级、插件扩展的完整平台。项目代码完全开源,你可以直接克隆仓库运行,也能基于它进行深度定制。踩过的坑是:早期版本对 TypeScript 支持不够完善,但 3.x 版本已经全面重构,类型定义非常友好。
应用场景
企业官网/博客:快速搭建带后台的内容站点,支持 SEO 优化 知识库系统:多级分类+标签管理,适合文档整理 轻量级电商平台:通过插件扩展商品管理功能(需自行开发) 教育机构内容管理:课程资料、视频资源的权限控制发布
功能模块
后端核心模块
用户管理:RBAC 权限模型(角色/权限/用户三级控制) 内容管理:文章、分类、标签的增删改查 文件管理:本地/OSS 存储配置,支持图片裁剪 系统设置:网站基本信息、SEO 配置、邮件模板 插件系统:通过中间件扩展功能(如评论、点赞)
前端核心模块
仪表盘:数据统计概览 内容编辑器:Markdown + 富文本双模式(基于 WangEditor) 权限中心:可视化角色权限分配 响应式布局:PC/移动端自适应
项目功能特点
TypeScript 强制类型:前后端代码都有完整类型定义,减少低级错误 JWT 鉴权:前后端分离的标准鉴权方案 自动化部署:支持 Docker 容器化部署 多环境配置:开发/测试/生产环境分离 国际化支持:前后端均可配置多语言
项目技术栈
后端
EggJS 3.x:阿里开源的企业级 Node 框架,内置插件机制 Sequelize:ORM 库,支持 MySQL/PostgreSQL/SQLite Redis:缓存和会话存储 Swagger:API 文档自动生成
前端
Vue 3:组合式 API,性能更好 Pinia:状态管理库(替代 Vuex) Vite:构建工具,启动速度极快 Element Plus:UI 组件库
开发工具
ESLint + Prettier:代码规范强制检查 Husky:Git 钩子防止不规范提交 TypeScript:全程类型安全
功能演示
开源地址
https://github.com/doramart/DoraCMS