為 EmDash 做出貢獻

本頁內容

EmDash 是一個 pnpm monorepo。主套件是 packages/core,以 emdash 的名稱發佈;它包含 Astro 整合、REST API、資料庫層、結構描述管理和外掛系統。React 管理後台 UI 位於 packages/admin。

本頁為你提供建立可用開發環境的最快路徑。CONTRIBUTING.md 是先決條件、儲存庫結構、貢獻政策、必要的檢查、changeset 以及提取請求要求的權威來源。

本機設定

  1. 複製、安裝並建置工作區。

    git clone https://github.com/emdash-cms/emdash.git
    cd emdash
    pnpm install
    pnpm build
  2. 啟動主要的開發示範。

    cd demos/simple
    pnpm dev

    該示範執行於 Node.js 上,使用 SQLite,位址為 http://localhost:4321。在第一次請求時,它會套用 seed/seed.json 中的結構描述;下一步中的開發繞過還會加入它的範例內容。

  3. 開啟管理後台。

    若要獲得最快的本機設定,請開啟開發繞過。它會執行遷移、建立一個開發用管理員、讓你登入,並重新導向到管理後台。

    如果想改為測試通行金鑰(passkey)的設定流程,請開啟管理後台。設定精靈會建立資料庫、執行遷移,並提示你建立管理員帳戶。

開發工作流程

監看模式

在執行示範的同時修改 packages/core 時,請使用兩個終端機,這樣套件會自動重新建置:

# 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 with oxfmt and Prettier

測試

所有測試

pnpm test

僅核心

cd packages/core && pnpm test

監看模式

cd packages/core && pnpm test --watch

E2E

pnpm test:e2e    # starts its own server

測試使用真實的記憶體內 SQLite 資料庫,而不是資料庫模擬。每個測試都會獲得一個全新的資料庫。

選擇貢獻路徑

錯誤修復、文件和翻譯可以直接提交提取請求。錯誤修復必須包含一個能夠重現該問題的失敗測試。翻譯貢獻請遵循翻譯工作流程。

功能和重構需要先有經維護者核准的 Discussion,才能開始實作。沒有獲得核准的功能提取請求會被關閉。開始工作之前,請閱讀完整的貢獻政策,以便了解適用哪條路徑。

文件的變更還必須遵循文件風格指南。

若要了解貫穿 EmDash 的主要執行路徑,請閱讀架構(內部結構)。程式碼層面的模式和不變量記錄在 AGENTS.md 中。