為 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