サイトのプラグイン更新
このページで分かること
emdashとプラグインのパッケージを最新にして、インストールとビルドをやり直す手順- 公式のプラグイン3つ(
@emdash-cms/plugin-audit-logなど)が既定のエクスポートに変わったことと、astro.config.mjsの直し方 - 以前は呼び出し時に渡していた設定が、管理画面のプラグインの設定ページに移ったこと
このページの目次
このガイドは、サイトの運営者(サイトにプラグインをインストールする人)向けです。プラグインを作る場合は、代わりにプラグインCLIへの移行を参照してください。
依存パッケージのアップグレード
emdash とプラグインのパッケージを最新のバージョンに更新してから、インストールとビルドをやり直します。
pnpm up --latest emdash @emdash-cms/plugin-audit-log @emdash-cms/plugin-webhook-notifier @emdash-cms/plugin-atproto
pnpm build
アップグレード後、何も変更しなくてもサイトがビルドでき、動くことがあります。ビルドに失敗したり、プラグインが読み込まれなくなったりした場合は、以下の破壊的変更を順に確認します。それぞれ、何を変更すればよいかを具体的に説明しています。
各パッケージの変更点の一覧は、リリースのページにあるそのパッケージの項目を参照してください。
やさしい解説
WordPressではプラグインの更新を管理画面のボタンで済ませますが、astro.config.mjs に書いて登録したプラグインは、npm(またはpnpm)のパッケージとして更新し、ビルドし直します。このページのコマンドは pnpm を使っています。更新したあとにビルドが失敗した場合は、次の「破壊的変更」に書かれた書き換えが必要かどうかを確かめます。
破壊的変更
変更:公式のプラグイン3つが既定のエクスポートを使うように変更
以前のリリースでは、公式のプラグインを名前付きのエクスポートと、ファクトリー関数の呼び出しの形で提供していました。たとえば、import { auditLogPlugin } from "@emdash-cms/plugin-audit-log" を読み込み、auditLogPlugin() として使っていました。
これらのプラグインは、plugins: または sandboxed: にそのまま渡す、既定のエクスポートを提供するようになりました。ファクトリー関数の呼び出しはありません。対象は、@emdash-cms/plugin-audit-log、@emdash-cms/plugin-webhook-notifier、@emdash-cms/plugin-atproto です。
対応方法
astro.config.mjs で、importの波括弧と、プラグイン名のあとの () を削除します。
次の例は、@emdash-cms/plugin-audit-log の場合の変更を示しています。このプラグインはサイトのプロセス内で動くため、plugins: に入れます。
import { auditLogPlugin } from "@emdash-cms/plugin-audit-log";
import auditLog from "@emdash-cms/plugin-audit-log";
export default defineConfig({
integrations: [
emdash({
plugins: [auditLogPlugin()],
plugins: [auditLog],
}),
],
});
他のパッケージにも、同じ2つの変更を適用します。@emdash-cms/plugin-atproto と @emdash-cms/plugin-webhook-notifier はサンドボックス型プラグインなので、plugins: ではなく sandboxed: に入れます。importの変更は同じです。
| パッケージ | 既定のエクスポートの名前 |
|---|---|
@emdash-cms/plugin-audit-log |
auditLog |
@emdash-cms/plugin-webhook-notifier |
webhookNotifier |
@emdash-cms/plugin-atproto |
atproto |
この変更は、上の3つのパッケージにだけ適用されます。その他のネイティブ型プラグインのimportは、これまでの形のままでよい場合があります。たとえば、Field Kitは引き続き plugins: [] の中で fieldKitPlugin() として使います。各ネイティブ型プラグインのインストール手順に従ってください。
アップグレードのあと
サードパーティーのプラグインがまだ名前付きのエクスポートとファクトリー関数の呼び出しの形で提供されている場合、そのプラグインはこのリリースに合わせた更新がされていません。そのプラグインの変更履歴を確認します。上に挙げた公式のプラグインは、すべて既定のエクスポートの形を使っています。