EmDash에 기여하기

이 페이지

EmDash는 pnpm 모노레포입니다. 메인 패키지는 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    # required before first run
  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

개발 워크플로

감시 모드

코어 패키지를 데모와 함께 반복 개발하려면 두 개의 터미널을 사용하세요:

# 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를 참조하세요.