Structure du Projet
Votre nouveau projet Astro généré à partir de l’assistant de création create astro
inclut déjà quelques fichiers et dossiers. D’autres seront créés par vous-même et ajoutés à la structure existante d’Astro.
Voici comment un projet Astro est organisé, ainsi que quelques fichiers que vous trouverez dans votre nouveau projet.
Répertoires et fichiers
Astro s’appuie sur une disposition des dossiers propre à chaque projet. La racine de chaque projet Astro doit inclure les répertoires et fichiers suivants :
src/*
- Le code source de votre projet (composants, pages, styles, etc…)public/*
- Tout ce qui n’est pas du code et/ou des fichiers qui n’ont pas à être traités (polices d’écritures, icônes, etc…)package.json
- Le manifeste de votre projet.astro.config.mjs
- Un fichier de configuration d’Astro (recommandé)tsconfig.json
- Un fichier de configuration TypeScript. (recommandé)
Exemple de structure de projet
Un répertoire de projet Astro courant peut ressembler à ceci :
Répertoirepublic/
- robots.txt
- favicon.svg
- social-image.png
Répertoiresrc/
Répertoirecomponents/
- Header.astro
- Button.jsx
Répertoirelayouts/
- PostLayout.astro
Répertoirepages/
Répertoireposts/
- post1.md
- post2.md
- post3.md
- index.astro
Répertoirestyles/
- global.css
- astro.config.mjs
- package.json
- tsconfig.json
src/
Le code source de votre project se trouve dans le dossier src/
. Il comprend en général :
- Des composants Pages
- Des composants Layouts
- Des composants Astro
- Des composants Frontend (React, etc…)
- Des fichiers de style (CSS, Sass) (EN)
- Du Markdown
Astro traite, optimise et regroupe vos fichiers src/
pour créer le site web final qui est livré au navigateur. Contrairement au répertoire statique public/
, les fichiers src/
sont traités et assemblés pour vous par Astro.
Certains fichiers (comme les composants Astro) ne sont pas envoyés au navigateur tels qu’ils sont écrits, mais sont rendus en HTML statique. D’autres fichiers (CSS par exemple) sont envoyés au navigateur, mais peuvent être optimisés ou regroupés avec d’autres fichiers CSS pour améliorer les performances.
Bien que ce guide décrive quelques conventions populaires utilisées dans la communauté Astro, les seuls répertoires réservés par Astro sont src/pages/
et src/content/
. Vous êtes libre de renommer et de réorganiser les autres répertoires de la manière qui vous convient le mieux.
src/components
Les composants sont, généralement, du code réutilisable pour vos pages HTML. Ils peuvent être des composants Astro, ou des composants d’interface utilisateur de framework comme React ou Vue. Il est commun de regrouper et d’organiser tous les composants de votre projet dans ce dossier.
C’est une convention courante dans les projets Astro, mais elle n’est pas obligatoire. N’hésitez pas à organiser vos composants comme vous le souhaitez !
src/content
Le répertoire src/content/
est réservé au stockage des collections de contenu et d’un fichier optionnel de configuration des collections. Aucun autre fichier n’est autorisé dans ce répertoire.
src/layouts
Les composants de mise en page sont des composants Astro qui définissent la structure de l’interface partagée par une ou plusieurs pages.
Tout comme src/components
, ce répertoire est une convention commune mais n’est pas obligatoire.
src/pages
Les composants Pages sont un type de composant particulier utilisé pour créer de nouvelles pages sur votre site. Une Page peut être un composant Astro (.astro
) ou un fichier Markdown (.md
) qui représente une page de contenu pour votre site.
src/pages
est un sous-dossier obligatoire dans votre projet Astro. Sans ça, votre site n’aura aucune page ni route !
src/styles
Il est courant de stocker vos fichiers CSS ou Sass dans un répertoire src/styles
, mais ce n’est pas obligatoire. Tant que vos styles se trouvent quelque part dans le répertoire src/
et qu’ils sont importés correctement, Astro les gérera et les optimisera.
public/
Le dossier public/
contient les fichiers et les ressources qui n’ont pas besoin d’être traités pendant le processus de construction d’Astro. Ces fichiers seront copiés dans le dossier de construction sans modification.
Ce comportement fait du dossier public/
un endroit idéal pour les ressources communes comme des images, polices d’écriture, ou même pour des fichiers spéciaux comme robots.txt
et manifest.webmanifest
.
Vous pouvez placer des fichiers CSS et JavaScript dans le dossier public/
, mais gardez à l’esprit que ces fichiers ne seront pas regroupés et/ou optimisés dans votre construction final.
En règle générale, tout CSS ou JavaScript que vous ajoutez devrait être mis dans le dossier src/
.
package.json
C’est un fichier utilisé par les gestionnaires de paquets JavaScript pour gérer vos dépendances. Il définit également les scripts qui sont utilisés pour exécuter Astro (ex: npm start
, npm run build
).
Il existe deux types de dépendances que vous pouvez spécifier dans le fichier package.json
: dependencies
et devDependencies
. Dans la plupart des cas, elles fonctionnent de la même manière : Astro a besoin de toutes les dépendances au moment de la construction, et votre gestionnaire de paquets les installera toutes les deux. Nous recommandons de mettre toutes vos dépendances dans dependencies
pour commencer, et de n’utiliser devDependencies
que si vous avez un besoin spécifique.
Pour plus d’informations en ce qui concerne la création d’un nouveau fichier package.json
pour votre projet, consultez les instructions de configuration manuelle.
astro.config.mjs
Ce fichier est généré dans chaque modèle de démarrage et contient des options de configuration pour votre projet Astro. Ici, vous pouvez spécifier les intégrations à utiliser, les options de construction, les options du serveur, et plus encore.
Allez voir la documentation de configuration (EN) pour plus d’informations sur les options de configuration.
tsconfig.json
Ce fichier est généré dans chaque modèle de démarrage et comprend des options de configuration TypeScript pour votre projet Astro. Certaines fonctionnalités (comme les importations de paquets npm) ne sont pas entièrement prises en charge dans l’éditeur sans un fichier tsconfig.json
.
Voir le Guide TypeScript pour plus de détails sur le paramétrage des configurations.
Learn