Saltearse al contenido

Banderas heredadas

Para ayudar a algunos usuarios a migrar entre versiones de Astro, ocasionalmente introducimos banderas legacy.

Estas banderas te permiten optar por un comportamiento obsoleto o desactualizado de Astro en la última versión, para que puedas seguir actualizando y aprovechando las nuevas versiones de Astro hasta que puedas actualizar completamente el código de tu proyecto.

Tipo: boolean
Predeterminado: false

Agregado en: astro@5.0.0

Habilita el comportamiento heredado para las colecciones de contenido (como se usaba en Astro v2 a v4)

astro.config.mjs
import { defineConfig } from 'astro/config';
export default defineConfig({
legacy: {
collections: true
}
});

Si está habilitado, las colecciones data y content (solo) se manejarán utilizando la implementación heredada de las colecciones de contenido. Las colecciones con un loader (solo) seguirán utilizando la API de Content Layer en su lugar. Ambos tipos de colecciones pueden existir en el mismo proyecto, cada uno utilizando sus respectivas implementaciones.

Las siguientes limitaciones continúan existiendo:

  • Cualquier colección heredada (type: 'content' o type: 'data') debe seguir estando ubicada en el directorio src/content/.
  • Estas colecciones heredadas no se transformarán para usar implícitamente el cargador glob(), y en su lugar serán manejadas por código heredado.
  • Las colecciones que utilizan la API de Content Layer (con un loader definido) están prohibidas en src/content/, pero pueden existir en cualquier otro lugar de tu proyecto.

Cuando estés listo para eliminar este flag y migrar a la nueva API de Content Layer para tus colecciones heredadas, debes definir una colección para cualquier directorio en src/content/ que desees seguir utilizando como colección. Es suficiente declarar una colección vacía, y Astro generará implícitamente una definición apropiada para tus colecciones heredadas:

src/content/config.ts
import { defineCollection, z } from 'astro:content';
const blog = defineCollection({ })
export const collections = { blog };
Contribuir Comunidad Patrocinador