EmDash에 기여하기

이 페이지

EmDash는 pnpm monorepo입니다. 메인 패키지는 packages/core(emdash로 게시됨)이며, Astro 통합, REST API, 데이터베이스 레이어, 스키마 관리 및 플러그인 시스템을 포함합니다. 관리자 UI는 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를 사용합니다 — 모킹 없음. 각 테스트는 새로운 데이터베이스를 받습니다.

승인되는 것

타입프로세스
버그 수정직접 PR을 열어주세요. 실패하는 테스트를 포함하세요.
문서 / 오타직접 PR을 열어주세요.
번역직접 PR을 열어주세요. EmDash 번역하기를 참조하세요.
기능Discussion을 열고 관리자의 승인을 기다려주세요.
리팩토링먼저 Discussion을 열어주세요.

사전 관리자 승인 없는 기능 PR은 닫힙니다.

전체 기여 정책, changeset 가이드, 저장소 레이아웃 및 아키텍처 개요는 CONTRIBUTING.md를 참조하세요.