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 # 첫 실행 전 필수 -
데모 시작
cd demos/simple pnpm dev설정 마법사가 첫 실행 시 자동으로 실행됩니다 — 데이터베이스를 생성하고, 마이그레이션을 실행하며, 관리자 계정 생성을 요청합니다.
샘플 콘텐츠로 채우려면:
pnpm seed -
관리자 페이지 열기
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를 사용합니다 — 모킹 없음. 각 테스트는 새로운 데이터베이스를 받습니다.
승인되는 것
| 타입 | 프로세스 |
|---|---|
| 버그 수정 | 직접 PR을 열어주세요. 실패하는 테스트를 포함하세요. |
| 문서 / 오타 | 직접 PR을 열어주세요. |
| 번역 | 직접 PR을 열어주세요. EmDash 번역하기를 참조하세요. |
| 기능 | Discussion을 열고 관리자의 승인을 기다려주세요. |
| 리팩토링 | 먼저 Discussion을 열어주세요. |
사전 관리자 승인 없는 기능 PR은 닫힙니다.
전체 기여 정책, changeset 가이드, 저장소 레이아웃 및 아키텍처 개요는 CONTRIBUTING.md를 참조하세요.