このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください
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でインストールされたもの、またはフレームワークに組み込まれたもの)。同じ名前のプラグインがソースディレクトリとパッケージディレクトリの両方に存在する場合、システムはローカルでの上書きとデバッグを容易にするため、ソースコードバージョンを優先してロードします。
CLIを使ってプラグインを作成します。
生成されるディレクトリ構造は以下の通りです。
ビルドが完了すると、
dist/ディレクトリとclient.js、server.jsファイルはプラグインが有効になったときにロードされます。 開発段階ではsrc/ディレクトリのみを修正すればよく、公開前にはyarn build <plugin>またはyarn build <plugin> --tarを実行するだけで済みます。