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.
| Paquete | Vinculación de exportación predeterminada |
|---|---|
@emdash-cms/plugin-audit-log | auditLog |
@emdash-cms/plugin-webhook-notifier | webhookNotifier |
@emdash-cms/plugin-atproto | atproto |
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.