Un projet SvelteKit typique ressemble à ça :
```bash
my-project/
├ src/
│ ├ lib/
│ │ ├ server/
│ │ │ └ [your server-only lib files]
│ │ └ [your lib files]
│ ├ params/
│ │ └ [your param matchers]
│ ├ routes/
│ │ └ [your routes]
│ ├ app.html
│ ├ error.html
│ ├ hooks.client.js
│ ├ hooks.server.js
│ └ service-worker.js
├ static/
│ └ [your static assets]
├ tests/
│ └ [your tests]
├ package.json
├ svelte.config.js
├ tsconfig.json
└ vite.config.js
```
Vous trouverez également des fichiers classiques comme `.gitignore` et `.npmrc` (et `.prettierrc et
eslint.config.js` et ainsi de suite, si vous choisissez ces options après avoir lancé `npx sv
create`).
## Fichiers d'un projet [!VO]Project files
### src
Le dossier `src` contient le coeur de votre projet. Tout y est optionnel à l'exception de
`src/routes` et `src/app.html`.
- `lib` contient votre code de "librairie" (utilitaires et composants), qui peut être importé via
l'alias [`$lib`]($lib), ou empaqueté pour distribution en utilisant [`svelte-package`](packaging)
- `server` contient votre code de "librairie" dédié serveur. Il peut être importé en utilisant
l'alias [`$lib/server`](server-only-modules). SvelteKit vous empêchera d'importer du code
provenant de ce dossier dans du code client
- `params` contient tout [matcher de paramètre](advanced-routing#Matching) dont votre application a
besoin
- `routes` contient les [routes](routing) de votre application. Vous pouvez aussi y placer des
composants qui ne seraient utilisés que pour une route spécifique
- `app.html` est votre template de page — un document HTML contenant les placeholders suivants :
- `%sveltekit.head%` — les éléments `` et `