Aggiornamento dei plugin sul tuo sito

In questa pagina

Questa guida è per gli operatori di siti: persone che installano plugin in un sito. Se scrivi plugin, consulta invece Migrazione alla CLI dei plugin.

Aggiorna le tue dipendenze

Aggiorna emdash e i tuoi pacchetti di plugin alle loro ultime versioni, quindi reinstalla e ricostruisci:

pnpm up emdash @emdash-cms/plugin-audit-log @emdash-cms/plugin-webhook-notifier @emdash-cms/plugin-atproto
pnpm build

Dopo l’aggiornamento, il tuo sito potrebbe compilarsi ed eseguirsi senza ulteriori modifiche. Se la compilazione fallisce o un plugin smette di caricarsi, esamina le modifiche sostanziali qui sotto. Ognuna ti dice esattamente cosa cambiare.

Per l’elenco completo delle modifiche in ogni pacchetto, consulta la sua voce nel changelog di EmDash.

Modifiche sostanziali

Rinominato: @emdash-cms/registry-cli è ora @emdash-cms/plugin-cli

Le versioni precedenti fornivano la CLI del registro dei plugin come @emdash-cms/registry-cli, con un binario emdash-registry.

Il pacchetto è ora @emdash-cms/plugin-cli e il binario è emdash-plugin. Il vecchio pacchetto non viene più pubblicato.

Hai questa dipendenza solo se pubblichi plugin o esegui comandi di registro dal tuo repository del sito. La maggior parte dei siti che installano solo plugin non l’ha mai avuta.

Cosa devo fare?

Sostituisci il pacchetto:

pnpm remove @emdash-cms/registry-cli
pnpm add -D @emdash-cms/plugin-cli

Aggiorna tutti gli script package.json che chiamano il vecchio binario, sostituendo emdash-registry con emdash-plugin:

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

Modificato: i plugin pubblicati usano un’esportazione predefinita

Le versioni precedenti esponevano i plugin di prima parte come esportazione nominata e chiamata factory, ad esempio import { auditLogPlugin } from "@emdash-cms/plugin-audit-log" usato come auditLogPlugin().

Questi plugin ora forniscono un’esportazione predefinita che passi direttamente a plugins: o sandboxed:. Non c’è chiamata factory. Questo riguarda @emdash-cms/plugin-audit-log, @emdash-cms/plugin-webhook-notifier e @emdash-cms/plugin-atproto.

Cosa devo fare?

In astro.config.mjs, rimuovi le parentesi graffe attorno all’importazione e le () dopo il nome del plugin.

L’esempio seguente mostra la modifica per @emdash-cms/plugin-audit-log, che viene eseguito in-process e va in 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],
		}),
	],
});

Applica le stesse due modifiche agli altri pacchetti. @emdash-cms/plugin-atproto e @emdash-cms/plugin-webhook-notifier sono plugin sandboxed, quindi vanno in sandboxed: invece di plugins:; la modifica dell’importazione è identica.

PacchettoBinding di esportazione predefinita
@emdash-cms/plugin-audit-logauditLog
@emdash-cms/plugin-webhook-notifierwebhookNotifier
@emdash-cms/plugin-atprotoatproto

Dopo l’aggiornamento

Se un plugin di terze parti fornisce ancora un’esportazione nominata e una chiamata factory, non è stato aggiornato per questa versione. Controlla il suo changelog. Tutti i plugin di prima parte elencati sopra usano la forma di esportazione predefinita.