Actualizar plugins en tu sitio

En esta página

Esta guía es para operadores de sitios: personas que instalan plugins en un sitio. Si escribes plugins, consulta Migración a la CLI de plugins en su lugar.

Actualiza tus dependencias

Actualiza emdash y tus paquetes de plugins a sus últimas versiones, luego reinstala y reconstruye:

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

Después de actualizar, tu sitio puede compilarse y ejecutarse sin más cambios. Si la compilación falla o un plugin deja de cargarse, revisa los cambios importantes a continuación. Cada uno te indica exactamente qué cambiar.

Para la lista completa de cambios en cada paquete, consulta su entrada en el registro de cambios de EmDash.

Cambios importantes

Renombrado: @emdash-cms/registry-cli ahora es @emdash-cms/plugin-cli

Las versiones anteriores incluían la CLI del registro de plugins como @emdash-cms/registry-cli, con un binario emdash-registry.

El paquete ahora es @emdash-cms/plugin-cli y el binario es emdash-plugin. El paquete antiguo ya no se publica.

Solo tienes esta dependencia si publicas plugins o ejecutas comandos de registro desde tu repositorio del sitio. La mayoría de los sitios que solo instalan plugins nunca la tuvieron.

¿Qué debo hacer?

Reemplaza el paquete:

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

Actualiza cualquier script de package.json que llame al binario antiguo, reemplazando 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

Cambiado: los plugins publicados usan una exportación predeterminada

Las versiones anteriores exponían plugins de primera parte como una exportación nombrada y una llamada de fábrica, por ejemplo import { auditLogPlugin } from "@emdash-cms/plugin-audit-log" usado como auditLogPlugin().

Estos plugins ahora proporcionan una exportación predeterminada que pasas directamente a plugins: o sandboxed:. No hay llamada de fábrica. Esto afecta a @emdash-cms/plugin-audit-log, @emdash-cms/plugin-webhook-notifier y @emdash-cms/plugin-atproto.

¿Qué debo hacer?

En astro.config.mjs, elimina las llaves alrededor de la importación y los () después del nombre del plugin.

El siguiente ejemplo muestra el cambio para @emdash-cms/plugin-audit-log, que se ejecuta en proceso y va en 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],
		}),
	],
});

Aplica las mismas dos ediciones a los otros paquetes. @emdash-cms/plugin-atproto y @emdash-cms/plugin-webhook-notifier son plugins en sandbox, por lo que van en sandboxed: en lugar de plugins:; el cambio de importación es idéntico.

PaqueteVinculación de exportación predeterminada
@emdash-cms/plugin-audit-logauditLog
@emdash-cms/plugin-webhook-notifierwebhookNotifier
@emdash-cms/plugin-atprotoatproto

Después de actualizar

Si un plugin de terceros todavía incluye una exportación nombrada y llamada de fábrica, no se ha actualizado para esta versión. Consulta su registro de cambios. Todos los plugins de primera parte enumerados anteriormente usan la forma de exportación predeterminada.