Skip to content

Commit e6e7a90

Browse files
i18n(fr): add experimental-flags/static-import-meta-env.mdx
See withastro#12144
1 parent 326a232 commit e6e7a90

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
---
2+
title: Incorporation expérimentale des variables d'environnement privées provenant de meta
3+
sidebar:
4+
label: Incorporation des variables d'environnement privées provenant de meta
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+
<Since v="5.13.0" />
15+
</p>
16+
17+
:::tip[Aperçu d'Astro 6.0]
18+
Le comportement activé par cette fonctionnalité deviendra le comportement par défaut dans Astro 6.0.
19+
20+
Vous souhaiterez peut-être ajouter cette option dès que cela vous convient. Vous pourrez ainsi profiter plus rapidement des avantages et éviter de mettre à jour le code de votre projet pour la prochaine version majeure d'Astro.
21+
:::
22+
23+
Astro vous permet de configurer un [schéma avec sûreté du typage pour vos variables d'environnement](/fr/guides/environment-variables/#variables-denvironnement-avec-sûreté-du-typage), et convertit les variables importées via `astro:env` avec le type attendu. Il s'agit de la méthode recommandée pour utiliser les variables d'environnement dans Astro, car elle vous permet de visualiser et de gérer facilement si vos variables sont publiques ou secrètes, disponibles sur le client ou uniquement sur le serveur lors de la compilation, ainsi que le type de données de vos valeurs.
24+
25+
Cependant, vous pouvez toujours accéder directement à vos variables d'environnement via `process.env` ainsi que `import.meta.env` si nécessaire. C'était la seule façon d'utiliser les variables d'environnement dans Astro avant l'ajout de `astro:env` dans Astro 5.0, et sa gestion de `import.meta.env` inclut une logique qui était destinée aux versions antérieures d'Astro et qui n'est plus nécessaire.
26+
27+
L'option `experimental.staticImportMetaEnv` met à jour le comportement lors de l'accès direct à `import.meta.env` pour s'aligner sur [la gestion des variables d'environnement par Vite](https://vite.dev/guide/env-and-mode.html#env-variables) et garantit que les valeurs de `import.meta.env` sont toujours intégrées au code.
28+
29+
Actuellement, les variables d'environnement non publiques sont remplacées par une référence à `process.env`. De plus, Astro peut également convertir le type de valeur de vos variables d'environnement utilisées via `import.meta.env`, ce qui peut empêcher l'accès à certaines valeurs telles que les chaînes de caractères `"true"` (qui est convertie en valeur booléenne) et `"1"` (qui est convertie en nombre).
30+
31+
L'option `experimental.staticImportMetaEnv` simplifie le comportement par défaut d'Astro, le rendant plus facile à comprendre et à utiliser. Astro ne remplacera plus aucune variable d'environnement provenant de `import.meta.env` par un appel à `process.env` et ne forcera plus la conversion des valeurs.
32+
33+
Pour activer cette fonctionnalité, ajoutez l'option expérimentale dans votre configuration Astro :
34+
35+
```js title="astro.config.mjs" ins={4-6}
36+
import { defineConfig } from "astro/config"
37+
38+
export default defineConfig({
39+
experimental: {
40+
staticImportMetaEnv: true,
41+
}
42+
})
43+
```
44+
45+
## Utilisation
46+
47+
L'activation de cette option expérimentale ne convertira plus les valeurs des chaînes de caractères en booléens ou en nombres, ni ne transformera les valeurs de `import.meta.env` en appels à `process.env`. Cela aligne le comportement de `import.meta.env` dans Astro avec celui de [Vite](https://vite.dev/guide/env-and-mode.html#env-variables).
48+
49+
Dans une future version majeure, Astro adoptera ce comportement par défaut, mais vous pouvez opter pour le comportement futur plus tôt en utilisant l'option `experimental.staticImportMetaEnv` et, si nécessaire, [en mettant à jour votre projet](#mise-à-jour-de-votre-projet) en conséquence.
50+
51+
### Mise à jour de votre projet
52+
53+
Si vous vous appuyiez sur la coercition, vous devrez peut-être mettre à jour le code de votre projet pour l'appliquer manuellement :
54+
55+
```ts title="src/components/MonComposant.astro" del={1} ins={2}
56+
const enabled: boolean = import.meta.env.ENABLED;
57+
const enabled: boolean = import.meta.env.ENABLED === "true";
58+
```
59+
60+
Si vous comptiez sur la transformation en `process.env`, vous devrez peut-être mettre à jour le code de votre projet pour l'appliquer manuellement :
61+
62+
```ts title="src/components/MonComposant.astro" del={1} ins={2}
63+
const enabled: boolean = import.meta.env.DB_PASSWORD;
64+
const enabled: boolean = process.env.DB_PASSWORD;
65+
```
66+
67+
Vous devrez peut-être également mettre à jour les types :
68+
69+
```ts title="src/env.d.ts" del={3-4} ins={5,12-16}
70+
interface ImportMetaEnv {
71+
readonly PUBLIC_POKEAPI: string;
72+
readonly DB_PASSWORD: string;
73+
readonly ENABLED: boolean;
74+
readonly ENABLED: string;
75+
}
76+
77+
interface ImportMeta {
78+
readonly env: ImportMetaEnv;
79+
}
80+
81+
namespace NodeJS {
82+
interface ProcessEnv {
83+
DB_PASSWORD: string;
84+
}
85+
}
86+
```
87+
88+
Si vous avez besoin de plus de contrôle sur les variables d'environnement dans Astro, nous vous recommandons d'utiliser [`astro:env`](/fr/guides/environment-variables/).

0 commit comments

Comments
 (0)