EmDash는 pnpm 모노레포입니다. 메인 패키지는 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를 사용합니다. 모킹이 필요 없습니다. 각 테스트는 새로운 데이터베이스를 받습니다.
받아들이는 기여
| 유형 | 절차 |
|---|---|
| 버그 수정 | PR을 직접 제출하세요. 실패하는 테스트를 포함해 주세요. |
| 문서 / 오타 | PR을 직접 제출하세요. |
| 번역 | PR을 직접 제출하세요. EmDash 번역하기를 참조하세요. |
| 새 기능 | 먼저 Discussion을 열고 메인테이너의 승인을 기다리세요. |
| 리팩토링 | 먼저 Discussion을 열어주세요. |
메인테이너의 사전 승인 없는 기능 PR은 닫힙니다.
전체 기여 정책, changeset 가이드, 저장소 구조, 아키텍처 개요는 CONTRIBUTING.md를 참조하세요.