为 EmDash 做贡献

本页内容

EmDash 是一个 pnpm monorepo。主包是 packages/core(发布为 emdash)——它包含 Astro 集成、REST API、数据库层、数据模型管理和插件系统。管理后台 UI 位于 packages/admin

如需完整的贡献者参考——仓库结构、架构、代码规范、changeset 策略——请参阅 CONTRIBUTING.md

本地搭建

  1. 克隆并安装

    git clone https://github.com/emdash-cms/emdash.git
    cd emdash
    pnpm install
    pnpm build    # required before first run
  2. 启动演示项目

    cd demos/simple
    pnpm dev

    首次启动时会自动运行设置向导——它会创建数据库、执行迁移,并提示你创建管理员账户。

    如需填充示例内容:pnpm seed

  3. 打开管理后台

    访问 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