Aller au contenu

Options héritées

Pour aider certains utilisateurs à migrer entre les versions d’Astro, nous introduisons occasionnellement des options héritées (ou legacy en anglais).

Ces options vous permettent d’accepter certains comportements dépréciés ou obsolètes d’Astro dans la dernière version, afin que vous puissiez continuer à mettre à niveau et profiter des nouvelles versions d’Astro jusqu’à ce que vous soyez en mesure de mettre à jour complètement le code de votre projet.

Type : boolean
Par défaut : false

Ajouté à la version : astro@5.0.0

Activer le comportement hérité pour les collections de contenu (tel qu’utilisé dans Astro v2 à v4)

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

Si cette option est activée, les collections de données et de contenus (uniquement) sont gérées à l’aide de l’implémentation des collections de contenu héritées. Les collections avec un loader (uniquement) continueront à utiliser l’API Content Layer à la place. Les deux types de collections peuvent exister dans le même projet, chacune utilisant leurs implémentations respectives.

Les limitations suivantes subsistent :

  • Toutes les collections héritées (type: 'content' ou type: 'data') doivent continuer à être situées dans le répertoire src/content/.
  • Ces collections héritées ne seront pas transformées pour utiliser implicitement le chargeur glob() et seront plutôt gérées par le code hérité.
  • Les collections utilisant l’API Content Layer (avec un loader défini) sont interdites dans src/content/, mais peuvent exister n’importe où ailleurs dans votre projet.

Lorsque vous êtes prêt à supprimer cette option et à migrer vers la nouvelle API Content Layer pour vos collections héritées, vous devez définir une collection pour tous les répertoires de src/content/ que vous souhaitez continuer à utiliser comme collection. Il suffit de déclarer une collection vide et Astro générera implicitement une définition appropriée pour vos collections héritées :

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

Comment pouvons-nous vous aider ?

Créer une issue GitHub

Le moyen le plus rapide d'alerter notre équipe d'un problème.

Communauté