From aa9d812c23c593250c24154c3c9a0160036f7d21 Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Mon, 3 Mar 2025 13:26:23 +0100 Subject: [PATCH] i18n(fr): update `guides/environment-variables.mdx` (#11131) See #11118 Co-authored-by: Thomas Bonnet --- .../docs/fr/guides/environment-variables.mdx | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/content/docs/fr/guides/environment-variables.mdx b/src/content/docs/fr/guides/environment-variables.mdx index 86d7bbffb4bf3..1f4f73c26c61c 100644 --- a/src/content/docs/fr/guides/environment-variables.mdx +++ b/src/content/docs/fr/guides/environment-variables.mdx @@ -5,7 +5,6 @@ sidebar: description: Apprendre comment utiliser les variables d'environnement dans un projet Astro. i18nReady: true --- - import PackageManagerTabs from '~/components/tabs/PackageManagerTabs.astro' import ReadMore from '~/components/ReadMore.astro'; @@ -79,6 +78,7 @@ Créez simplement un fichier `.env` dans le répertoire du projet et ajoutez-y q ```ini title=".env" # Elle sera disponible uniquement pour le code exécuté sur le serveur ! DB_PASSWORD="foobar" + # Elle sera disponible partout ! PUBLIC_POKEAPI="https://pokeapi.co/api/v2" ``` @@ -140,17 +140,20 @@ Vous pouvez également utiliser [l'assistant `loadEnv` de Vite](https://main.vit ```js title="astro.config.mjs" import { loadEnv } from "vite"; + const { SECRET_PASSWORD } = loadEnv(process.env.NODE_ENV, process.cwd(), ""); ``` :::note `pnpm` ne vous permet pas d'importer des modules qui ne sont pas directement installés dans votre projet. Si vous utilisez `pnpm`, vous devrez installer `vite` pour utiliser l'assistant `loadEnv`. + ```sh -pnpm add vite --save-dev +pnpm add -D vite ``` ::: ### Utilisation en CLI + Vous pouvez également ajouter des variables d'environnement lorsque vous exécutez votre projet : @@ -173,7 +176,7 @@ Vous pouvez également ajouter des variables d'environnement lorsque vous exécu ## Obtenir des variables d'environnement -Les variables d'environnement dans Astro sont accessibles avec `import.meta.env`, en utilisant la fonctionnalité [import.meta ajoutée dans ES2020](https://tc39.es/ecma262/2020/#prod-ImportMeta), au lieu de `process.env`. +Les variables d'environnement dans Astro sont accessibles avec `import.meta.env`, en utilisant la fonctionnalité [`import.meta` ajoutée dans ES2020](https://tc39.es/ecma262/2020/#prod-ImportMeta), au lieu de `process.env`. Par exemple, utilisez `import.meta.env.PUBLIC_POKEAPI` pour obtenir la variable d'environnement `PUBLIC_POKEAPI`. @@ -185,7 +188,7 @@ const data = await db(import.meta.env.DB_PASSWORD); const data = fetch(`${import.meta.env.PUBLIC_POKEAPI}/pokemon/squirtle`); ``` -Lorsque vous utilisez SSR, les variables d'environnement peuvent être accédées au moment de l'exécution en fonction de l'adaptateur SSR utilisé. Avec la plupart des adaptateurs, vous pouvez accéder aux variables d'environnement avec `process.env`, mais certains adaptateurs fonctionnent différemment. Pour l'adaptateur Deno, vous utiliserez `Deno.env.get()`. Voir comment [accéder au runtime Cloudflare](/fr/guides/integrations-guide/cloudflare/#cloudflare-runtime) pour gérer les variables d'environnement lors de l'utilisation de l'adaptateur Cloudflare. Astro vérifiera d'abord l'environnement du serveur pour les variables, et si elles n'existent pas, Astro les cherchera dans les fichiers .env. +Lorsque vous utilisez SSR, les variables d'environnement peuvent être accédées au moment de l'exécution en fonction de l'adaptateur SSR utilisé. Avec la plupart des adaptateurs, vous pouvez accéder aux variables d'environnement avec `process.env`, mais certains adaptateurs fonctionnent différemment. Pour l'adaptateur Deno, vous utiliserez `Deno.env.get()`. Voir comment [accéder au runtime Cloudflare](/fr/guides/integrations-guide/cloudflare/#cloudflare-runtime) pour gérer les variables d'environnement lors de l'utilisation de l'adaptateur Cloudflare. Astro vérifiera d'abord l'environnement du serveur pour les variables, et si elles n'existent pas, Astro les cherchera dans les fichiers `.env`. ## Variables d'environnement avec sûreté du typage @@ -200,7 +203,7 @@ L'API `astro:env` vous permet de configurer un schéma avec sûreté du typage p Pour configurer un schéma, ajoutez l'option `env.schema` à votre configuration Astro : ```js title="astro.config.mjs" ins={4-8} -import { defineConfig } from 'astro/config' +import { defineConfig } from "astro/config" export default defineConfig({ env: { @@ -211,10 +214,10 @@ export default defineConfig({ }) ``` -Vous pouvez ensuite [enregistrer des variables sous forme de chaîne de caractères, de nombre, d'énumération ou de booléen](#types-de-données) en utilisant l'assistant `envField`. Définissez le [type de variable d'environnement](#types-de-variables) Définissez le type de variable d'environnement en fournissant les propriétés `context` (client ou serveur) et `access` (secret ou public) pour chaque variable, et transmettez toutes les propriétés supplémentaires telles que `optional` ou `default` dans un objet : +Vous pouvez ensuite [enregistrer des variables sous forme de chaîne de caractères, de nombre, d'énumération ou de booléen](#types-de-données) en utilisant l'assistant `envField`. Définissez le [type de variable d'environnement](#types-de-variables) en fournissant les propriétés `context` (`"client"` ou `"server"`) et `access` (`"secret"` ou `"public"`) pour chaque variable, et transmettez toutes les propriétés supplémentaires telles que `optional` ou `default` dans un objet : ```js title="astro.config.mjs" ins="envField" -import { defineConfig, envField } from 'astro/config' +import { defineConfig, envField } from "astro/config" export default defineConfig({ env: { @@ -256,7 +259,7 @@ fetch(`${API_URL}/ping`) ### Types de variables -Il existe trois types de variables d'environnement, déterminées par la combinaison des paramètres `context` (client ou serveur) et `access` (secret ou public) définis dans votre schéma : +Il existe trois types de variables d'environnement, déterminées par la combinaison des paramètres `context` (`"client"` ou `"server"`) et `access` (`"secret"` ou `"public"`) définis dans votre schéma : - **Variables publiques du client** : Ces variables se retrouvent à la fois dans vos bundles client et serveur finaux et sont accessibles à la fois depuis le client et le serveur via le module `astro:env/client` : @@ -309,9 +312,9 @@ envField.boolean({ envField.enum({ // context & access - values: ['foo', 'bar', 'baz'], + values: ["foo", "bar", "baz"], optional: true, - default: 'baz', + default: "baz", }) ``` @@ -325,9 +328,9 @@ Malgré la définition de votre schéma, vous souhaiterez peut-être récupérer import { FOO, // boolean getSecret -} from 'astro:env/server' +} from "astro:env/server" -getSecret('FOO') // string | undefined +getSecret("FOO") // string | undefined ``` Apprenez-en davantage dans [la référence de l'API](/fr/reference/modules/astro-env/#getsecret).