docs / 项目 / roadmap
NuxtCMS 路线图
目标:一个可同时作为「有头」站点基座和「无头」内容后端的现代 CMS。参照对象是 WordPress 的内容模型与生态边界,以及 Strapi / Payload / Directus 一类无头 CMS 的 API 与权限设计。
已完成(2026-09)
- 数据库多方言:SQLite / D1、PostgreSQL、MySQL,统一适配层与迁移。
- 接口缓存:后台可配置缓存路径与排除路径,写入自动失效。
- 附件存储:本地、R2、阿里 OSS、腾讯 COS、任意 S3;CDN 公网地址。
- 只保留 GET / POST 两种请求方式,写操作统一
POST+_method。 - 多语言收敛为中文 + 英文(/us 为主,/en 跳转);演示站(首页、产品、资讯、关于、联系)。
- 四种部署形态:Pages、Workers、Linux/宝塔、前后端分离。
已完成(2026-10,v1.2 / v1.3)
- 定时任务调度器、询盘邮件通知、搜索引擎推送、浏览量、Turnstile、持久化限流、健康检查。
- 插件机制:运行时插件(JSON 清单,在线安装免构建)+ 代码包插件(Nuxt Layer + CLI),CMS 事件与 Webhook。
- 官方插件中心:注册、站点绑定、积分购买、联系授权、按域名授权与每日复核;10 个官方插件。
- Revisions:每次编辑前快照、预览与一键恢复。
- 定时发布:
scheduled状态,到点自动发布并触发事件。 - 导入导出:WordPress WXR 导入,跨数据库 JSON 备份与恢复。
- 部署形态扩展到任意 Nitro 预设(Vercel / Netlify / AWS / Azure / Deno…)与国内云函数(容器)。
第一阶段:内容模型(对标 WordPress 核心)
| WordPress 概念 | NuxtCMS 现状 | 计划 |
|---|---|---|
| Post / Page / Custom Post Type | posts.type 只有 post/page,产品是独立表 | 通用 collections 表:type + JSON fields,产品、案例、团队成员都成为集合,后台按 schema 自动生成表单 |
| Taxonomy(分类 / 标签 / 自定义) | 分类各自一张表,标签是逗号字符串 | 统一 terms + term_relationships,支持层级与多分类法 |
| Revisions | ✅ v1.3:每次编辑前快照,预览与恢复 | 版本差异对比(diff) |
| Menus | 无(导航写在布局里) | menus / menu_items,后台拖拽维护,前端 useMenu('primary') |
| Media Library | 有列表与上传 | 图片变体(缩略图 / WebP)、Alt 文本、按文件夹归档、引用计数 |
| Users & Roles | admin / editor | 能力(capability)表驱动的角色,作者 / 投稿者 / 订阅者 |
| Comments | 无 | 可选模块,默认关闭 |
| Options(设置) | key/value 表 | 分组、类型声明与校验,后台自动生成设置页 |
第二阶段:无头能力
- 公开内容 API v1:
/api/v1/{collection}统一分页、筛选、排序、字段选择、locale;OpenAPI 文档已有基础。 - API Key / Token:只读发布密钥与读写密钥,替代目前仅供后台使用的 JWT。
- Webhooks:✅ v1.3 已通过插件清单提供(发布 / 更新 / 删除 / 询盘事件);后续增加后台可视化配置与重试队列。
- 预览模式:草稿预览链接(带签名),供外部前端使用。
- GraphQL(可选):在集合模型稳定后提供。
第三阶段:扩展与生态
- 插件机制:✅ v1.3。后续:插件注册后台菜单与集合、插件签名校验。
- 主题:前台以 Layer 形式切换,基座只保留后台与 API;当前演示站成为第一个官方主题。
- 表单构建器:联系表单泛化为可配置表单与提交记录。
- 搜索:SQLite FTS / PostgreSQL 全文检索 / MySQL FULLTEXT 的统一封装。
- 导入导出:✅ v1.3 WordPress WXR 导入与 JSON 备份;后续 Markdown 导出、媒体文件随包迁移。
工程基线(持续)
- 语义化版本与 CHANGELOG,站点锁定 tag。
- GitHub Actions:lint、typecheck、三方言 schema 一致性、PGlite 冒烟、Node 与 Cloudflare 双构建。
@nuxt/test-utils覆盖认证、缓存、集合 CRUD。- 站点接入指南:如何用配置而不是覆盖文件来定制基座。