Configurer Astro

Personnalisez le fonctionnement d’Astro en ajoutant un fichier astro.config.mjs dans votre projet. C’est un fichier commun dans les projets Astro, et tous les exemples officiels de modĂšles et de thĂšmes sont livrĂ©s avec un fichier par dĂ©faut.

📚 Lisez la doc de rĂ©fĂ©rence de l’API d’Astro (EN) pour une vue d’ensemble de toutes les options de configuration supportĂ©es.

Le Fichier de Configuration d’Astro

Titre de la section Le Fichier de Configuration d’Astro

Un fichier de configuration Astro valide exporte sa configuration en utilisant l’export default, en utilisant l’aide defineConfig recommandĂ©e :

astro.config.mjs
import { defineConfig } from 'astro/config'
export default defineConfig({
// vos options de configuration ici...
// https://docs.astro.build/fr/reference/configuration-reference/
})

L’utilisation de defineConfig() est recommandĂ© pour obtenir l’aide sur les types utilisĂ©s dans votre Ă©diteur de code (IDE), mais elle est aussi optionnelle. Un fichier de configuration minimal valide pourrait ressembler Ă  ça :

// Exemple : Fichier de configuration minimal, vide
export default {}

Types de Fichier de Configuration Supportés

Titre de la section Types de Fichier de Configuration Supportés

Astro supporte plusieurs formats de fichiers pour son fichier de configuration JavaScript : astro.config.js, astro.config.mjs, astro.config.cjs et astro.config.ts. Nous recommandons d’utiliser .mjs dans la plupart des cas oĂč .ts si vous voulez Ă©crire du TypeScript dans votre fichier de configuration.

Le chargement du fichier de configuration TypeScript est géré par tsm respectera les options tsconfig de votre projet.

Résolution du fichier de configuration

Titre de la section Résolution du fichier de configuration

Astro va automatiquement essayer de rĂ©soudre un fichier de configuration nommĂ© astro.config.mjs Ă  la racine du projet. Si aucun fichier de configuration n’est trouvĂ© Ă  la racine de votre projet, les options par dĂ©faut d’Astro seront utilisĂ©es.

FenĂȘtre du terminal
# Exemple : Lit votre configuration Ă  partir de ./astro.config.mjs
astro build

Vous pouvez explicitement dĂ©finir un fichier de configuration Ă  utiliser avec l’option --config depuis l’interface de commande en ligne CLI. Cette option est toujours relative au rĂ©pertoire de travail actuel dans lequel vous avez lancĂ© la commande astro.

FenĂȘtre du terminal
# Exemple : Lit votre configuration Ă  partir de ce fichier
astro build --config mon-fichier-config.js

Astro recommande d’utiliser l’aide defineConfig() dans votre fichier de configuration. defineConfig() fournit une autocomplĂ©tion automatique dans votre IDE. Les Ă©diteurs comme VSCode sont capables de lire les dĂ©finitions de type TypeScript d’Astro et de fournir des indications de type JSDoc automatiques, mĂȘme si votre fichier de configuration n’est pas Ă©crit en TypeScript.

astro.config.mjs
import { defineConfig } from 'astro/config'
export default defineConfig({
// vos options de configuration ici...
// https://docs.astro.build/fr/reference/configuration-reference/
})

Vous pouvez également fournir des définitions de type manuellement à VSCode, en utilisant cette notation JSDoc :

astro.config.mjs
export default /** @type {import('astro').AstroUserConfig} */ ({
// vos options de configuration ici...
// https://docs.astro.build/fr/reference/configuration-reference/
}

Référencement des fichiers relatifs

Titre de la section Référencement des fichiers relatifs

Si vous fournissez un chemin relatif Ă  root ou Ă  l’option --root, Astro rĂ©soudera ce chemin par rapport au rĂ©pertoire de travail actuel oĂč vous avez lancĂ© la commande astro.

astro.config.mjs
import { defineConfig } from 'astro/config'
export default defineConfig({
// Cherches vers le répertoire "./foo" dans le répertoire de travail actuel
root: 'foo'
})

Astro va chercher toutes les autres chaßnes relatives de fichiers et de répertoires par rapport à la racine du projet :

astro.config.mjs
import { defineConfig } from 'astro/config'
export default defineConfig({
// Se dirige vers le répertoire "./foo" dans le répertoire de travail actuel
root: 'foo',
// Se dirige vers le répertoire "./foo/public" dans le répertoire de travail actuel
publicDir: 'public',
})

Pour référencer un fichier ou un répertoire relatif au fichier de configuration, utilisez import.meta.url (sauf si vous écrivez un fichier common.js astro.config.cjs).

astro.config.mjs
import { defineConfig } from 'astro/config'
export default defineConfig({
// Se dirige vers le répertoire "./foo", relatif à ce fichier de configuration
root: new URL("./foo", import.meta.url).toString(),
// Se dirige vers le répertoire "./public", relatif à ce fichier de configuration
publicDir: new URL("./public", import.meta.url).toString(),
})

Personnalisation des noms de fichiers de sortie

Titre de la section Personnalisation des noms de fichiers de sortie

Pour le code qu’Astro traite, comme les fichiers JavaScript ou CSS importĂ©s, vous pouvez personnaliser les noms de fichiers de sortie en utilisant entryFileNames (EN), chunkFileNames (EN), et assetFileNames (EN) dans une entrĂ©e vite.build.rollupOptions de votre fichier astro.config.*.

astro.config.mjs
import { defineConfig } from 'astro/config'
export default defineConfig({
vite: {
build: {
rollupOptions: {
output: {
entryFileNames: 'entry.[hash].mjs',
chunkFileNames: 'chunks/chunk.[hash].mjs',
assetFileNames: 'assets/asset.[hash][extname]',
},
},
},
},
})

Cela peut ĂȘtre utile si vous avez des scripts dont les noms peuvent ĂȘtre affectĂ©s par des bloqueurs de publicitĂ© (par exemple ads.js ou google-tag-manager.js).

Astro Ă©value les fichiers de configuration avant de charger vos autres fichiers. Ainsi, vous ne pouvez pas utiliser import.meta.env pour accĂ©der aux variables d’environnement qui ont Ă©tĂ© dĂ©finies dans les fichiers .env.

Vous pouvez utiliser process.env dans un fichier de configuration pour accĂ©der Ă  d’autres variables d’environnement, comme celles dĂ©finies par le CLI.

Vous pouvez Ă©galement utiliser l’aide loadEnv de Vite (EN) pour charger manuellement les fichiers .env.

astro.config.mjs
import { loadEnv } from "vite";
const { SECRET_PASSWORD } = loadEnv(process.env.NODE_ENV, process.cwd(), "");

📚 Lisez la documentation de rĂ©fĂ©rence sur la configuration de l’API d’Astro (EN) pour une vue d’ensemble des options de configuration supportĂ©es.