EmDash 是一个 pnpm monorepo。主包是 packages/core(发布为 emdash)——它包含 Astro 集成、REST API、数据库层、schema 管理和插件系统。管理界面位于 packages/admin。
完整的贡献者参考资料——仓库布局、架构、代码规范、changeset 政策——请参阅 CONTRIBUTING.md。
本地设置
-
克隆并安装
git clone https://github.com/emdash-cms/emdash.git cd emdash pnpm install pnpm build # 首次运行前必需 -
启动演示
cd demos/simple pnpm dev设置向导在首次启动时自动运行——它会创建数据库、运行迁移,并提示您创建管理员账户。
要填充示例内容:
pnpm seed -
打开管理界面
访问 http://localhost:4321/_emdash/admin
在开发模式下,您可以使用绕过端点跳过 passkey 认证:
http://localhost:4321/_emdash/api/setup/dev-bypass?redirect=/_emdash/admin
开发工作流
Watch 模式
要在演示旁边迭代核心包,运行两个终端:
# Terminal 1 — 更改时重建 packages/core
cd packages/core && pnpm dev
# Terminal 2 — 运行演示
cd demos/simple && pnpm dev
检查
提交前运行这些命令(从仓库根目录):
pnpm typecheck # TypeScript
pnpm lint # 完整的类型感知 lint
pnpm format # 自动格式化(oxfmt, tabs)
测试
所有测试
pnpm test 仅 Core
cd packages/core && pnpm test Watch 模式
cd packages/core && pnpm test --watch E2E
pnpm test:e2e # 启动自己的服务器 测试使用真实的内存 SQLite——不模拟。每个测试都获得一个全新的数据库。
什么会被接受
| 类型 | 流程 |
|---|---|
| Bug 修复 | 直接打开 PR。包含一个失败的测试。 |
| 文档 / 错别字 | 直接打开 PR。 |
| 翻译 | 直接打开 PR。参见翻译 EmDash。 |
| 功能 | 打开一个 Discussion 并等待维护者批准。 |
| 重构 | 先打开一个 Discussion。 |
没有事先获得维护者批准的功能 PR 将被关闭。
完整的贡献政策、changeset 指南、仓库布局和架构概述,请参阅 CONTRIBUTING.md。