EmDash 是一個 pnpm monorepo。主套件是 packages/core(發佈為 emdash)——它包含 Astro 整合、REST API、資料庫層、資料模型管理和外掛系統。管理後台 UI 位於 packages/admin。
如需完整的貢獻者參考——儲存庫結構、架構、程式碼規範、changeset 策略——請參閱 CONTRIBUTING.md。
本地搭建
-
複製並安裝
git clone https://github.com/emdash-cms/emdash.git cd emdash pnpm install pnpm build # required before first run -
啟動範例專案
cd demos/simple pnpm dev首次啟動時會自動執行設定精靈——它會建立資料庫、執行遷移,並提示你建立管理員帳戶。
如需填充範例內容:
pnpm seed -
開啟管理後台
前往 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。