Color mode

Search notes

Filter with tag:, lang:, or path:.

ローカルプラグインの開発

riebeckite plugin dev は、ローカルのプラグインパッケージを一時的な Riebeckite サイトで実行します。実際の PluginRuntime、HonoX、Vite を使うため、サイトと同じ Markdown パイプライン、CSS、クライアントエントリーを確認できます。

English

使う場面

プラグインの変換処理、スタイル、クライアントの挙動を変更し、ブラウザーで結果を確認したいときに使います。theme preview との違いは次のとおりです。

  • plugin dev はローカルのパスから 1 つのプラグインを読み込み、そのクライアントエントリーを実行します。
  • theme preview は固定のテスト用コンテンツでテーマを確認します。plugin dev はプラグイン用の一時サイトを生成します。

プレビューを開始する

プラグインパッケージ内、またはパスを指定して実行します。

sh
riebeckite plugin dev ./extensions/my-plugin
riebeckite plugin dev ../my-plugin --port 4321 --no-open
オプション 意味
<path> プラグインのディレクトリ、またはその package.json
--port <port> 開発サーバーのポート
--no-open ブラウザーを自動で開かない

プラグインのディレクトリには有効な package.json が必要です。エントリーポイントは exports["."] の source、import、module、default、main、慣例的な index.ts の順で解決します。./client や ./style.css などのエクスポートサブパスは、対応するローカルファイルが存在する場合に結び付けます。

プレビューの前に、プラグイン側のプロジェクトで依存関係をインストールしてください。コマンドが依存パッケージを自動でインストールすることはありません。

テスト用サイト

システムの一時ディレクトリに最小構成の HonoX サイトを作成し、ローカルプラグインをリンクしてからテスト用データのパスを表示します。テスト用データには見出しとタブ付きコードブロックを含む決定的な Markdown を書き込みます。設定済みの Vault、riebeckite.config.ts、ビルド出力は読み書きしません。

生成するサイトでは既定のテーマと、Markdown、カラーモード、目次の標準プラグインを使い、その後にローカルプラグインを加えます。プロジェクトの設定をコピーせず、通常のサイトに近い構成で確認できます。

編集中の更新

変更 結果
プラグインの CSS Vite HMR が開いているページを更新する
プラグインのクライアントエントリー プレビューを再読み込みし、新しいクライアントコードを実行する
テスト用データの Markdown 描画結果を更新する
プラグインのエントリーポイント 開発サーバーを再起動する

変更を反映できない場合は、成功したように見せずターミナルにエラーを表示します。コンパイルや初期化に失敗した場合は 0 以外の終了ステータスで終了します。

エラーと後片付け

パスが見つからない場合、package.json が不正な場合、エントリーポイントに対応していない場合、プラグインの初期化に失敗した場合は、プレビューが使える状態になる前にエラーを表示します。Ctrl+C、通常終了、起動失敗のいずれでも一時サイトを削除します。プロセスを強制終了した場合は、起動時に表示されたテスト用データのパスを手動で削除してください。

セキュリティ

plugin dev は信頼できるローカル開発向けのコマンドです。指定したパスのプラグインエントリーとクライアントコードを実行します。信頼できるプラグインだけを実行し、プレビューサーバーを信頼できない利用者へ公開しないでください。

トラブルシューティング

  • Could not find a plugin: パスを確認してください。相対パスはカレントディレクトリから解決します。
  • Could not find package.json: パッケージのルート、またはその package.json を指定してください。
  • Could not find the plugin entry point: exports["."]、main、または index.ts を追加してください。
  • Vite がコンパイルエラーを表示する: プラグインの依存関係をインストールし、ターミナルの出力を確認してください。
  • ポートが使用中: 別の --port を指定してください。