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 数据库,而不是数据库模拟。每个测试都会获得一个全新的数据库。
选择贡献路径
缺陷修复、文档和翻译可以直接提交拉取请求。缺陷修复必须包含一个能够复现该问题的失败测试。翻译贡献请遵循翻译工作流。
功能和重构需要先有经维护者批准的 Discussion,才能开始实现。没有获得批准的功能拉取请求会被关闭。开始工作之前,请阅读完整的贡献政策,以便了解适用哪条路径。
文档的更改还必须遵循文档风格指南。
要了解贯穿 EmDash 的主要执行路径,请阅读架构(内部结构)。代码层面的模式和不变量记录在 AGENTS.md 中。