Aller au contenu

Référence de l'API des importations de configuration

Ajouté à la version : astro@5.7.0

Ce module virtuel astro:config expose une version non exhaustive, sérialisable et assurant la sûreté du typage de la configuration Astro. Deux sous-modules permettent d’accéder à différents sous-ensembles de vos valeurs de configuration : /client et /server.

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. Cela protège vos informations en ne rendant accessibles qu’une partie des données au client.

Les utilitaires suivants sont importés depuis le répertoire client du module de configuration virtuel.

import {
i18n,
trailingSlash,
base,
build,
site,
compressHTML,
} from "astro:config/client";

Utilisez ce sous-module pour le code côté client :

src/utils.js
import { trailingSlash } from "astro:config/client";
function addForwardSlash(path) {
if (trailingSlash === "always") {
return path.endsWith("/") ? path : path + "/"
} else {
return path
}
}

En savoir plus sur les importations de configuration disponibles à partir de astro:config/client :

Les utilitaires suivants sont importés depuis le répertoire server du module de configuration virtuel.

import {
i18n,
trailingSlash,
base,
build,
site,
srcDir,
cacheDir,
outDir,
publicDir,
root,
compressHTML,
} from "astro:config/server";

Ces importations incluent tout ce qui est disponible à partir de astro:config/client ainsi que des informations sensibles supplémentaires sur la configuration de votre système de fichiers qu’il n’est pas sûr d’exposer au client.

Utilisez ce sous-module pour le code côté serveur :

astro.config.mjs
import { integration } from "./integration.mjs";
export default defineConfig({
integrations: [
integration(),
]
});
integration.mjs
import { outDir } from "astro:config/server";
import { writeFileSync } from "node:fs";
import { fileURLToPath } from "node:url";
export default function() {
return {
name: "internal-integration",
hooks: {
"astro:build:done": () => {
let file = new URL("result.json", outDir);
// générer des données à partir d'une opération
let data = JSON.stringify([]);
writeFileSync(fileURLToPath(file), data, "utf-8");
}
}
}
}

En savoir plus sur les importations de configuration disponibles à partir de astro:config/server :

Les utilitaires suivants sont importés depuis le module de configuration standard :

import {
defineConfig,
envField,
fontProviders,
getViteConfig,
mergeConfig,
passthroughImageService,
sessionDrivers,
sharpImageService,
validateConfig,
} from "astro/config";

Type : (config: AstroUserConfig) => AstroUserConfig

Configure votre projet avec la sûreté du type dans un fichier de configuration Astro pris en charge.

Type : object

Ajouté à la version : astro@5.0.0

Décrit les types de données pris en charge lors de la définition des variables d’environnement.

Chaque type de données doit définir le type de variable avec context ("client" ou "server") et access ("secret" ou "public"). De plus, vous pouvez définir une valeur par défaut (default), indiquer si la variable est facultative avec optional (false par défaut), et certains types de données proposent des méthodes de validation facultatives.

Apprenez-en davantage sur l’utilisation de variables d’environnement avec sûreté du typage dans votre projet Astro.

Type : (options: StringFieldInput) => StringField

Définit une variable d’environnement de type chaîne de caractères. Vous pouvez effectuer une validation de chaîne de caractères avec Zod en utilisant les propriétés suivantes : max, min, length, url, includes, startsWith et endsWith.

L’exemple suivant définit la structure attendue d’une variable d’environnement stockant une URL d’API :

astro.config.mjs
import { defineConfig, envField } from "astro/config";
export default defineConfig({
env: {
schema: {
API_URL: envField.string({
context: "client",
access: "public",
optional: false,
default: "",
min: 12,
url: true,
includes: "astro",
startsWith: "https",
}),
}
}
})

Type : (options: NumberFieldInput) => NumberField

Définit une variable d’environnement de type numérique. Vous pouvez effectuer une validation de nombres avec Zod en utilisant les propriétés suivantes : gt, lt, min, max et int.

L’exemple suivant définit la forme attendue pour une variable d’environnement stockant un port d’API :

astro.config.mjs
import { defineConfig, envField } from "astro/config";
export default defineConfig({
env: {
schema: {
API_PORT: envField.number({
context: "server",
access: "public",
optional: true,
default: 4321,
min: 2,
int: true,
}),
}
}
})

Type : (options: BooleanFieldInput) => BooleanField

Définit une variable d’environnement de type booléen.

L’exemple suivant définit la forme attendue d’une variable d’environnement stockant l’activation ou non des mesures d’audience :

astro.config.mjs
import { defineConfig, envField } from "astro/config";
export default defineConfig({
env: {
schema: {
ANALYTICS_ENABLED: envField.boolean({
context: "client",
access: "public",
optional: true,
default: true,
}),
}
}
})

Type : (options: EnumFieldInput<T>) => EnumField

Définit une variable d’environnement de type énumération en fournissant les valeurs autorisées (values) sous forme de tableau.

L’exemple suivant définit la forme attendue pour une variable d’environnement stockant le mode de débogage configuré :

astro.config.mjs
import { defineConfig, envField } from "astro/config";
export default defineConfig({
env: {
schema: {
DEBUG_MODE: envField.enum({
context: "server",
access: "public",
values: ['info', 'warnings', 'errors'], // requis
optional: true,
default: 'errors',
}),
}
}
})

Type : object

Ajouté à la version : astro@6.0.0 Nouveau

Décrit le fournisseur intégré (EN) utilisé pour récupérer la police configurée.

Type : (userViteConfig: ViteUserConfig, inlineAstroConfig?: AstroInlineConfig) => ViteUserConfigFn

Récupère la configuration de Vite à utiliser en fusionnant un objet de configuration Vite personnalisé et un objet de configuration Astro optionnel. Ceci est utile pour configurer Vitest pour les tests.

Voir mergeConfig() dans la référence de l’API programmatique.

Type : () => ImageServiceConfig

Récupère un service d’images sans opération. Ceci est utile lorsque votre adaptateur ne prend pas en charge l’optimisation d’image Sharp intégrée à Astro et que vous souhaitez utiliser les composants <Image /> et <Picture />.

L’exemple suivant définit passthroughImageService() comme service d’image dans le fichier de configuration d’Astro afin d’éviter le traitement d’image Sharp :

astro.config.mjs
import { defineConfig, passthroughImageService } from "astro/config";
export default defineConfig({
image: {
service: passthroughImageService()
}
});

Type : object

Ajouté à la version : astro@5.7.0

Décrit le pilote intégré (EN) utilisé pour le stockage de sessions.

L’exemple suivant configure le pilote Redis pour activer les sessions :

astro.config.mjs
import { defineConfig, sessionDrivers } from "astro/config";
export default defineConfig({
session: {
driver: sessionDrivers.redis({
url: process.env.REDIS_URL
}),
}
})
Apprenez-en davantage sur l’utilisation des sessions dans votre projet Astro.

Type : (config?: SharpImageServiceConfig) => ImageServiceConfig

Ajouté à la version : astro@2.4.1

Récupère le service Sharp utilisé pour traiter les ressources d’images d’Astro. Cette fonction prend un objet facultatif décrivant les options de configuration pour Sharp.

Voir validateConfig() dans la référence de l’API programmatique.

Contribuer Communauté Parrainer