Diese Anleitung ist für Site-Betreiber: Personen, die Plugins auf einer Site installieren. Wenn Sie Plugins schreiben, siehe stattdessen Migration zur Plugin-CLI.
Aktualisieren Sie Ihre Abhängigkeiten
Aktualisieren Sie emdash und Ihre Plugin-Pakete auf die neuesten Versionen, dann neu installieren und neu erstellen:
pnpm up emdash @emdash-cms/plugin-audit-log @emdash-cms/plugin-webhook-notifier @emdash-cms/plugin-atproto
pnpm build
Nach dem Upgrade kann Ihre Site möglicherweise ohne weitere Änderungen erstellt und ausgeführt werden. Wenn der Build fehlschlägt oder ein Plugin nicht mehr geladen wird, arbeiten Sie die unten aufgeführten Breaking Changes durch. Jeder zeigt Ihnen genau, was zu ändern ist.
Für die vollständige Liste der Änderungen in jedem Paket siehe den entsprechenden Eintrag im EmDash-Changelog.
Breaking Changes
Umbenannt: @emdash-cms/registry-cli ist jetzt @emdash-cms/plugin-cli
Frühere Versionen lieferten die Plugin-Registry-CLI als @emdash-cms/registry-cli mit einem emdash-registry-Binary aus.
Das Paket heißt jetzt @emdash-cms/plugin-cli und das Binary ist emdash-plugin. Das alte Paket wird nicht mehr veröffentlicht.
Sie haben diese Abhängigkeit nur, wenn Sie Plugins veröffentlichen oder Registry-Befehle aus Ihrem Site-Repository ausführen. Die meisten Sites, die nur Plugins installieren, hatten sie nie.
Was sollte ich tun?
Ersetzen Sie das Paket:
pnpm remove @emdash-cms/registry-cli
pnpm add -D @emdash-cms/plugin-cli
Aktualisieren Sie alle package.json-Skripte, die das alte Binary aufrufen, indem Sie emdash-registry durch emdash-plugin ersetzen:
emdash-registry publish --url https://example.com/my-plugin-1.0.0.tar.gz
emdash-plugin publish --url https://example.com/my-plugin-1.0.0.tar.gz
Geändert: Veröffentlichte Plugins verwenden einen Default-Export
Frühere Versionen stellten First-Party-Plugins als Named Export und Factory-Call zur Verfügung, zum Beispiel import { auditLogPlugin } from "@emdash-cms/plugin-audit-log" verwendet als auditLogPlugin().
Diese Plugins bieten jetzt einen Default-Export, den Sie direkt an plugins: oder sandboxed: übergeben. Es gibt keinen Factory-Call. Dies betrifft @emdash-cms/plugin-audit-log, @emdash-cms/plugin-webhook-notifier und @emdash-cms/plugin-atproto.
Was sollte ich tun?
Entfernen Sie in astro.config.mjs die geschweiften Klammern um den Import und die () nach dem Plugin-Namen.
Das folgende Beispiel zeigt die Änderung für @emdash-cms/plugin-audit-log, das im Prozess läuft und in plugins: gehört:
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],
}),
],
});
Wenden Sie dieselben zwei Änderungen auf die anderen Pakete an. @emdash-cms/plugin-atproto und @emdash-cms/plugin-webhook-notifier sind sandboxed Plugins, daher gehören sie in sandboxed: statt plugins:; die Import-Änderung ist identisch.
| Paket | Default-Export-Binding |
|---|---|
@emdash-cms/plugin-audit-log | auditLog |
@emdash-cms/plugin-webhook-notifier | webhookNotifier |
@emdash-cms/plugin-atproto | atproto |
Nach dem Upgrade
Wenn ein Third-Party-Plugin immer noch einen Named Export und Factory-Call liefert, wurde es noch nicht für diese Version aktualisiert. Prüfen Sie dessen Changelog. Alle oben aufgeführten First-Party-Plugins verwenden die Default-Export-Form.