EmDash 是一个 pnpm monorepo。主包是 packages/core(发布为 emdash)——它包含 Astro 集成、REST API、数据库层、数据模型管理和插件系统。管理后台 UI 位于 packages/admin。
如需完整的贡献者参考——仓库结构、架构、代码规范、changeset 策略——请参阅 CONTRIBUTING.md。
本地搭建
-
克隆并安装
git clone https://github.com/emdash-cms/emdash.git cd emdash pnpm install pnpm build # required before first run -
启动演示项目
cd demos/simple pnpm dev首次启动时会自动运行设置向导——它会创建数据库、执行迁移,并提示你创建管理员账户。
如需填充示例内容:
pnpm seed -
打开管理后台
访问 http://localhost:4321/_emdash/admin
在开发模式下,你可以通过绕过端点跳过 passkey 认证:
http://localhost:4321/_emdash/api/setup/dev-bypass?redirect=/_emdash/admin
开发工作流
监听模式
在迭代核心包的同时运行演示项目,需要打开两个终端:
# 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 (oxfmt, tabs)
测试
所有测试
pnpm test 仅核心包
cd packages/core && pnpm test 监听模式
cd packages/core && pnpm test --watch E2E
pnpm test:e2e # starts its own server 测试使用真实的内存 SQLite——无需 mock。每个测试都会获得一个全新的数据库。
我们接受的贡献
| 类型 | 流程 |
|---|---|
| Bug 修复 | 直接提交 PR,请包含一个失败测试。 |
| 文档 / 错别字 | 直接提交 PR。 |
| 翻译 | 直接提交 PR。请参阅翻译 EmDash。 |
| 新功能 | 先在 Discussion 中发起讨论,等待维护者批准。 |
| 重构 | 请先发起 Discussion。 |
未经维护者事先批准的功能 PR 将被关闭。
如需完整的贡献政策、changeset 指南、仓库结构和架构概览,请参阅 CONTRIBUTING.md。