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 Typeposts.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 & Rolesadmin / 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。
  • 站点接入指南:如何用配置而不是覆盖文件来定制基座。