EmDash は pnpm モノレポです。メインパッケージは packages/core で、emdash として公開されています。Astro インテグレーション、REST API、データベースレイヤー、スキーマ管理、プラグインシステムが含まれています。React 製の管理画面 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このデモは Node.js 上で SQLite を使って動作し、
http://localhost:4321で提供されます。最初のリクエスト時にseed/seed.jsonのスキーマが適用されます。次の手順の開発用バイパスでは、サンプルコンテンツも追加されます。 -
管理画面を開きます。
最も手早くローカル環境をセットアップするには、開発用バイパスを開きます。マイグレーションを実行し、開発用の管理者を作成してサインインし、管理画面にリダイレクトします。
代わりにパスキーのセットアップフローを試す場合は、管理画面を開いてください。セットアップウィザードがデータベースを作成し、マイグレーションを実行して、管理者アカウントの作成を促します。
開発ワークフロー
ウォッチモード
デモを実行しながら packages/core を変更する場合は、パッケージが自動的に再ビルドされるように、2 つのターミナルを使用します。
# 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 with oxfmt and Prettier
テスト
すべてのテスト
pnpm test コアのみ
cd packages/core && pnpm test ウォッチモード
cd packages/core && pnpm test --watch E2E
pnpm test:e2e # starts its own server テストでは、データベースのモックではなく、実際のインメモリ SQLite データベースを使用します。各テストには新しいデータベースが用意されます。
貢献の進め方を選ぶ
バグ修正、ドキュメント、翻訳は、直接プルリクエストにできます。バグ修正には、問題を再現する失敗するテストを含める必要があります。翻訳の貢献は、翻訳ワークフローに従ってください。
機能とリファクタリングは、実装の前にメンテナーが承認した Discussion が必要です。その承認がない機能のプルリクエストはクローズされます。どの進め方が当てはまるかを把握できるよう、作業を始める前にコントリビューションポリシーの全文を読んでください。
ドキュメントの変更は、ドキュメントスタイルガイドにも従う必要があります。
EmDash の主な実行パスについては、アーキテクチャ(内部構造)を参照してください。コードレベルのパターンと不変条件は、AGENTS.md に記載されています。