プロジェクトのディレクトリ構造
Git からソースコードをクローンする場合でも、create-nocobase-app を使ってプロジェクトを初期化する場合でも、生成される NocoBase プロジェクトは基本的に Yarn Workspace をベースとしたモノレポです。
トップレベルディレクトリの概要
以下の例では、my-nocobase-app/ をプロジェクトディレクトリとしています。環境によっては多少異なる場合があります:
packages/ サブディレクトリの説明
packages/ ディレクトリには、NocoBase のコアモジュールと拡張可能なパッケージが含まれています。具体的な内容はプロジェクトのソースによって異なります:
create-nocobase-appで作成されたプロジェクト:デフォルトではpackages/plugins/のみが含まれており、カスタムプラグインのソースコードを格納するために使用されます。各サブディレクトリは独立した npm パッケージです。- 公式ソースリポジトリをクローンした場合:
core/、plugins/、pro-plugins/、presets/など、より多くのサブディレクトリが表示されます。これらはそれぞれフレームワークのコア、組み込みプラグイン、公式プリセットソリューションに対応しています。
どちらの場合でも、packages/plugins がカスタムプラグインの開発とデバッグを行う主要な場所となります。
storage/ ランタイムディレクトリ
storage/ には、ランタイムで生成されるデータとビルド出力が格納されます。一般的なサブディレクトリの説明は以下の通りです:
apps/:マルチアプリケーション環境での設定とキャッシュ。logs/:ランタイ ムログとデバッグ出力。uploads/:ユーザーがアップロードしたファイルとメディアリソース。plugins/:UI からアップロードされた、または CLI でインポートされたパッケージ済みプラグイン。tar/:yarn build <plugin> --tar実行後に生成されるプラグインの圧縮パッケージ。
通常、storage ディレクトリは .gitignore に追加し、デプロイやバックアップ時には個別に処理することをおすすめします。
環境設定とプロジェクトスクリプト
.env、.env.test、.env.e2e:それぞれローカル実行、ユニット/統合テスト、エンドツーエンドテストに使用されます。scripts/:データベースの初期化、リリース補助ツールなどの一般的な運用スクリプトが格納されます。
プラグインのロードパスと優先順位
プラグインは複数の場所に存在する可能性があります。NocoBase は起動時に以下の優先順位でロードします:
packages/plugins内のソースコードバージョン(ローカル開発とデバッグ用)。storage/plugins内のパッケージバージョン(UI からアップロードされたも の、または CLI でインポートされたもの)。node_modules内の依存パッケージ(npm/yarn でインストールされたもの、またはフレームワークに組み込まれたもの)。
同じ名前のプラグインがソースディレクトリとパッケージディレクトリの両方に存在する場合、NocoBase はローカルでの上書きとデバッグを容易にするため、ソースコードバージョンを優先してロードします。
プラグインディレクトリのテンプレート
CLI を使ってプラグインを作成します:
生成されるディレクトリ構造は以下の通りです:
ビルドが完了すると、dist/ ディレクトリと client-v2.js、server.js ファイルはプラグインが有効になったときにロードされます。開発段階では src/ ディレクトリのみを修正すればよく、公開前には yarn build <plugin> または yarn build <plugin> --tar を実行するだけで済みます。
関連リンク
- 最初のプラグインを作成する — ゼロからプラグインを作成して完全な開発フローを体験
- サーバーサイド開発の概要 — サーバーサイドプラグインの全体紹介とコア概念
- クライアントサイド開発の概要 — クライアントサイドプラグインの全体紹介とコア概念
- ビルドとパッケージング — プラグインのビルド、パッケージング、配布フロー
- 依存関係の管理 — プラグインの依存関係の宣言と管理方法

