|
| 1 | +--- |
| 2 | +title: Configuration sérialisée expérimentale |
| 3 | +sidebar: |
| 4 | + label: Configuration sérialisée |
| 5 | +i18nReady: true |
| 6 | +--- |
| 7 | + |
| 8 | +import Since from '~/components/Since.astro'; |
| 9 | + |
| 10 | +<p> |
| 11 | + |
| 12 | + **Type :** `boolean`<br /> |
| 13 | + **Par défaut :** `false`<br /> |
| 14 | + |
| 15 | + <Since v="5.2.0" /> |
| 16 | +</p> |
| 17 | + |
| 18 | +Cette fonctionnalité permet d'accéder au module virtuel `astro:config` qui expose une version non exhaustive, sérialisable et assurant la sûreté du typage de la configuration Astro à travers deux sous-modules. |
| 19 | + |
| 20 | +Pour un aperçu complet et pour donner votre avis sur cette API expérimentale, consultez la [RFC du manifeste sérialisé](https://github.com/withastro/roadmap/blob/feat/serialised-config/proposals/0051-serialized-manifest.md). |
| 21 | + |
| 22 | +Pour activer ce module virtuel, ajoutez l'option de fonctionnalité `experimental.serializeConfig` à votre configuration Astro : |
| 23 | + |
| 24 | +```js title="astro.config.mjs" ins={3-5} |
| 25 | +import {defineConfig} from "astro/config" |
| 26 | +export default defineConfig({ |
| 27 | + experimental: { |
| 28 | + serializeConfig: true |
| 29 | + } |
| 30 | +}) |
| 31 | +``` |
| 32 | + |
| 33 | +Ensuite, les valeurs de configuration peuvent être utilisées par n’importe quel fichier de votre projet Astro : |
| 34 | +```js title="src/utils.js" ins={1} |
| 35 | +import { trailingSlash } from "astro:config/client"; |
| 36 | +function addForwardSlash(path) { |
| 37 | + if (trailingSlash === "always") { |
| 38 | + return path.endsWith("/") ? path : path + "/" |
| 39 | + } else { |
| 40 | + return path |
| 41 | + } |
| 42 | +} |
| 43 | +``` |
| 44 | +## Sous-modules |
| 45 | + |
| 46 | +Le module virtuel expose deux sous-modules permettant d'accéder à différents sous-ensembles de vos valeurs de configuration. Cela protège vos informations en ne mettant à disposition du client que certaines données. |
| 47 | + |
| 48 | +Toutes les valeurs de configuration disponibles sont accessibles depuis `astro:config/server`. Cependant, pour le code exécuté côté client, seules les valeurs exposées par `astro:config/client` seront disponibles. |
| 49 | + |
| 50 | +### `astro:config/client` |
| 51 | + |
| 52 | +Le sous-module client vous permet d'accéder à un sous-ensemble des valeurs de configuration dans `astro:config/server` qui peuvent être exposées en toute sécurité au navigateur, telles que `trailingSlash`, `build.format`, `i18n`, etc. Utilisez ce sous-module pour le code côté client qui est exécuté sur le client. |
| 53 | + |
| 54 | +Il s'agit d'une fonctionnalité en cours de développement. Pour obtenir une liste complète et à jour des valeurs de configuration disponibles dans `astro:config/client`, veuillez consulter [l'API proposée dans la RFC de la fonctionnalité](https://github.com/withastro/roadmap/blob/feat/serialised-config/proposals/0051-serialized-manifest.md#astroconfigclient) |
| 55 | + |
| 56 | +### `astro:config/server` |
| 57 | + |
| 58 | +Le sous-module serveur vous permet d'accéder à un ensemble non exhaustif de vos valeurs de configuration à partir de `astro.config.mjs`. Cela inclut les valeurs `astro:config/client` telles que `trailingSlash` et `i18n`, mais également des informations plus sensibles sur la configuration de votre système de fichiers qu'il n'est pas sûr d'exposer au client, telles que `srcDir`, `cacheDir`, `outDir`. |
| 59 | + |
| 60 | +Il s'agit d'une fonctionnalité en cours de développement. Pour obtenir une liste complète et à jour des valeurs de configuration disponibles dans `astro:config/server`, veuillez consulter [l'API proposée dans la RFC de la fonctionnalité](https://github.com/withastro/roadmap/blob/feat/serialised-config/proposals/0051-serialized-manifest.md#astroconfigserver), donc tenter de les utiliser générera une erreur. |
0 commit comments