為 EmDash 做出貢獻

本頁內容

EmDash 是一個 pnpm monorepo。主要套件是 packages/core(發布為 emdash)——它包含 Astro 整合、REST API、資料庫層、schema 管理和外掛系統。管理介面位於 packages/admin

完整的貢獻者參考資料——儲存庫佈局、架構、程式碼慣例、changeset 政策——請參閱 CONTRIBUTING.md

本機設定

  1. 複製並安裝

    git clone https://github.com/emdash-cms/emdash.git
    cd emdash
    pnpm install
    pnpm build    # 首次執行前必需
  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

開發工作流程

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