EmDash 是一个 pnpm monorepo。主包是 packages/core,以 emdash 的名称发布;它包含 Astro 集成、REST API、数据库层、模式管理和插件系统。React 管理后台 UI 位于 packages/admin。
本页为你提供搭建可用开发环境的最快路径。CONTRIBUTING.md 是先决条件、仓库结构、贡献政策、必需的检查、changeset 以及拉取请求要求的权威来源。
本地设置
-
克隆、安装并构建工作区。
git clone https://github.com/emdash-cms/emdash.git cd emdash pnpm install pnpm build -
启动主要的开发演示。
cd demos/simple pnpm dev该演示运行在 Node.js 上,使用 SQLite,地址为
http://localhost:4321。在第一次请求时,它会应用seed/seed.json中的 schema;下一步中的开发绕过还会添加它的示例内容。 -
打开管理后台。
要获得最快的本地设置,请打开开发绕过。它会运行迁移、创建一个开发用管理员、让你登录,并重定向到管理后台。
如果想改为测试通行密钥(passkey)的设置流程,请打开管理后台。设置向导会创建数据库、运行迁移,并提示你创建管理员账户。
开发工作流
监视模式
在运行演示的同时修改 packages/core 时,请使用两个终端,这样包会自动重新构建:
# Terminal 1 — rebuild packages/core on change
cd packages/core && pnpm dev
# Terminal 2 — run the demo
cd demos/simple && pnpm dev
检查
在提交之前,请在仓库根目录运行必需的检查:
pnpm typecheck # TypeScript
pnpm lint # full type-aware lint
pnpm format # auto-format with oxfmt and Prettier
测试
所有测试
pnpm test 仅核心
cd packages/core && pnpm test 监视模式
cd packages/core && pnpm test --watch E2E
pnpm test:e2e # starts its own server 测试使用真实的内存中 SQLite 数据库,而不是数据库模拟。每个测试都会获得一个全新的数据库。
选择贡献路径
缺陷修复、文档、测试、翻译、日常维护事务,以及保持行为不变的重构或性能改进,可以直接提交实现拉取请求。功能在实现之前,需要先有一份已被接受的功能方案或 RFC。开始工作之前,请阅读完整的贡献政策,以便了解适用哪条路径。
CONTRIBUTING.md 还链接了治理、路线图、分流、评审、提案和 AI 方面的权威政策。
文档的更改还必须遵循文档风格指南。
要了解贯穿 EmDash 的主要执行路径,请阅读架构(内部结构)。代码层面的模式和不变量记录在 AGENTS.md 中。