最初のプラグインを作成する
このドキュメントでは、ページで使用できるブロックプラグインをゼロから作成する手順を説明します。NocoBase プラグインの基本的な構造と開発フローを理解するのに役立ちます。
前提条件
始める前に、NocoBase がインストール済みであることを確認してください。まだインストールしていない場合は、以下を参照してください:
インストールが完了したら、開発を始められます。
ステップ 1:CLI でプラグインスケルトンを作成する
リポジトリのルートディレクトリで以下のコマンドを実行し、空のプラグインを素早く生成します:
コマンドが正常に実行されると、packages/plugins/@my-project/plugin-hello ディレクトリに基本ファイルが生成されます。デフォルトの構造は以下の通りです:
スケルトンが生成するのは最小限の骨組みで、src/client-v2/ にはエントリファイルしかありません。以降の手順で使う models/ や locale.ts は自分で新規作成する必要があります。
続いて開発モードを起動すると、以降はコードを修正するだけでホットリロードされます:
-
プロジェクトを NocoBase CLI(
nb init)で作成した場合は、プロジェクトのルートディレクトリ(<app-path>)で以下を実行します: -
自分で clone した NocoBase ソースリポジトリの場合は、ソースコードのルートディレクトリで以下を実行します:
起動後、ブラウザで「プラグインマネージャー」ページ(デフォルトアドレス:http://localhost:13000/admin/settings/plugin-manager)にアクセスし、プラグインがリストに表示されているか確認します。
ステップ 2:シンプルなクライアントブロックを実装する
次に、プラグインにカスタムブロックモデルを追加し、ウェルカムテキストを表示してみましょう。
- 翻訳ユーティリティファイル
src/client-v2/locale.tsを作成します。tExprは名前空間付きの翻訳式を宣言するために、useTはコンポーネント内で翻訳関数を取得するために使います:
- 新しいブロックモデルファイル
src/client-v2/models/HelloBlockModel.tsxを作成します:
- ブロックモデルを登録します。モデルファイルを作成しただけでは不十分で、フロントエンドランタイムは
models/ディレクトリを自動的にスキャンしないため、プラグインエントリで明示的に登録する必要があります。src/client-v2/plugin.tsxを編集し、load()の中でregisterModelLoadersを使ってモデルのロード方法を宣言します:
registerModelLoaders が受け取るのは遅延ロード用の関数で、モデルは実際に使われたときに初めてロードされます。キー名(HelloBlockModel)はモデルのクラス名と一致させる必要があり、ランタイムはこの名前でモジュールの名前付きエクスポートからモデルクラスを取り出します。
コードを保存した後、開発モードを実行している場合は、ターミナル出力にホットリロードのログが表示されるはずです。
ステップ 3:プラグインをアクティブ化して体験する
コマンドラインまたは管理画面からプラグインを有効にできます:
-
コマンドライン
-
管理画面:「プラグインマネージャー」にアクセスし、
@my-project/plugin-helloを見つけて「アクティブ化」をクリックします。
アクティブ化後、新しい「Modern page (v2)」ページを作成し、ブロックを追加する際に「Hello block」が表示されます。これをページに挿入すると、先ほど作成したウェルカムコンテンツが表示されます。


