Appearance
Options partagées #
root #
- Type:
string
- Défaut:
process.cwd()
Répertoire racine du projet (où se trouve index.html
). Peut être un chemin absolu, ou un chemin relatif au répertoire de travail actuel.
Voir Project Root pour plus de détails.
base #
- Type:
string
- Défaut:
/
Chemin d'accès public de base pour le service en développement ou en production. Les valeurs valides comprennent :
- Le chemin d'accès absolu de l'URL, par exemple
/foo/
. - URL complète, par exemple
https://foo.com/
- Chaîne vide ou
./
(pour le déploiement intégré)
Voir Public Base Path pour plus de détails.
mode #
- Type:
string
- Défaut:
'development'
pour serve,'production'
pour build
En spécifiant ceci dans la configuration, le mode par défaut sera remplacé pour servir et construire. Cette valeur peut également être remplacée par l'option --mode
de la ligne de commande.
Voir Env Variables and Modes pour plus de détails.
définir #
- Type:
Record<string, string>
Définit les remplacements de constantes globales. Les entrées seront définies comme globales pendant le développement et remplacées statiquement pendant la construction.
À partir de
2.0.0-beta.70
, les valeurs de chaîne seront utilisées comme des expressions brutes, donc si vous définissez une constante de chaîne, elle doit être explicitement citée (par exemple avecJSON.stringify
).Pour être cohérent avec esbuild behavior, les expressions doivent être soit un objet JSON (null, boolean, number, string, array, or object) ou un identifiant unique.
Les remplacements sont effectués uniquement lorsque la correspondance n'est pas entourée d'autres lettres, chiffres,
_
ou$
.
:: : avertissement Parce qu'il est implémenté comme un simple remplacement de texte sans aucune analyse syntaxique, nous recommandons d'utiliser define
pour CONSTANTS seulement.
Par exemple, p
et __APP_VERSION__
sont de bons exemples. Mais process
ou global
ne devraient pas être mis dans cette option. Les variables peuvent être shimmées ou polychargées à la place. :: :
:: : NOTE DE CONSEIL Pour les utilisateurs de TypeScript, assurez-vous d'ajouter les déclarations de type dans le fichier env.d.ts
ou vite-env.d.ts
pour obtenir les vérifications de type et l'Intellisense.
Exemple :
ts
// vite-env.d.ts
declare const __APP_VERSION__ : string
:: :
:: : conseil NOTE Puisque dev et build implémentent define
différemment, nous devons éviter certains cas d'utilisation pour éviter toute incohérence.
Exemple :
``js const obj = { NAME, // Ne pas définir de noms raccourcis de propriétés d'objets KEY : value // Ne pas définir de clé d'objet }
:: :
## plugins
- **Type:** `(Plugin | Plugin[] | Promise<Plugin | Plugin[]>)[]`.
Tableau de plugins à utiliser. Les plugins incomplets sont ignorés et les tableaux de plugins sont aplatis. Si une promesse est retournée, elle sera résolue avant l'exécution. Voir [Plugin API](/guide/api-plugin) pour plus de détails sur les plugins Vite.
## publicDir
- **Type:** `string | false`
- **Défaut:** `"public"`
Répertoire pour servir de ressources statiques simples. Les fichiers de ce répertoire sont servis à `/` pendant le dev et copiés à la racine de `outDir` pendant la construction, et sont toujours servis ou copiés tels quels sans transformation. La valeur peut être soit un chemin absolu du système de fichiers, soit un chemin relatif à la racine du projet.
Définir `publicDir` comme `false` désactive cette fonctionnalité.
Voir [The `public` Directory](/guide/assets#the-public-directory) pour plus de détails.
## cacheDir
- **Type:** `string`
- **Défaut:** `"node_modules/.vite"`
Répertoire pour enregistrer les fichiers de cache. Les fichiers dans ce répertoire sont des deps pré-bundled ou d'autres fichiers de cache générés par vite, qui peuvent améliorer les performances. Vous pouvez utiliser le drapeau `--force` ou supprimer manuellement le répertoire pour régénérer les fichiers de cache. La valeur peut être soit un chemin absolu du système de fichiers, soit un chemin relatif à la racine du projet. La valeur par défaut est `.vite` si aucun package.json n'est détecté.
## resolve.alias
- **Type:**
`Record<string, string> | Array<{ find : string | RegExp, replacement : string, customResolver ? ResolverFunction | ResolverObject }>`
Sera transmis à `@rollup/plugin-alias` comme son [option d'entrée] (https://github.com/rollup/plugins/tree/master/packages/alias#entries). Peut être soit un objet, soit un tableau de paires `{ find, replacement, customResolver }`.
Lorsque vous utilisez des alias vers des chemins de système de fichiers, utilisez toujours des chemins absolus. Les valeurs d'alias relatifs seront utilisées telles quelles et ne seront pas résolues en chemins de système de fichiers.
Une résolution personnalisée plus avancée peut être réalisée par le biais de [plugins](/guide/api-plugin).
:: : avertissement Utilisation avec SSR
Si vous avez configuré des alias pour [SSR externalized dependencies](/guide/ssr.md#ssr-externals), vous pouvez vouloir aliaser les paquets `node_modules`. Yarn](https://classic.yarnpkg.com/en/docs/cli/add/#toc-yarn-add-alias) et [pnpm](https://pnpm.js.org/en/aliases) prennent tous deux en charge les alias via le préfixe `npm:`.
:: :
## resolve.dedupe
- **Type:** `string[]`
Si vous avez des copies dupliquées de la même dépendance dans votre application (probablement à cause du hissage ou des paquets liés dans monorepos), utilisez cette option pour forcer Vite à toujours résoudre les dépendances listées vers la même copie (depuis la racine du projet).
:::warning SSR + ESM
Pour les constructions SSR, la déduplication ne fonctionne pas pour les sorties de construction ESM configurées à partir de `build.rollupOptions.output`. Une solution de contournement est d'utiliser les sorties de build CJS jusqu'à ce que ESM ait un meilleur support des plugins pour le chargement des modules.
:: :
## resolve.conditions
- **Type:** `string[]`
Conditions supplémentaires autorisées lors de la résolution des [Exportations conditionnelles] (https://nodejs.org/api/packages.html#packages_conditional_exports) d'un paquet.
Un paquet avec des exportations conditionnelles peut avoir le champ `exports` suivant dans son `package.json` :
```json
{
"exports" : {
"." : {
"import" : "./index.mjs",
"require" : "./index.js"
}
}
}
Ici, import
et require
sont des "conditions". Les conditions peuvent être imbriquées et doivent être spécifiées de la plus spécifique à la moins spécifique.
Vite a une liste de "conditions autorisées" et correspondra à la première condition qui est dans la liste autorisée. Les conditions autorisées par défaut sont : import
, module
, browser
, default
, et production/development
en fonction du mode actuel. L'option de configuration resolve.conditions
permet de spécifier des conditions autorisées supplémentaires.
Résolution des exportations de sous-chemins d'accès
Les clés d'exportation se terminant par "/" sont dépréciées par Node et peuvent ne pas fonctionner correctement. Veuillez contacter l'auteur du paquet pour utiliser *
subpath patterns à la place. :: :
resolve.mainFields #
- Type : **
string[]
. - Défaut: "['module', 'jsnext:main', 'jsnext']`".
Liste des champs de package.json
à essayer lors de la résolution du point d'entrée d'un paquet. Notez que ceci a une priorité inférieure aux exportations conditionnelles résolues à partir du champ exports
: si un point d'entrée est résolu avec succès à partir de exports
, le champ main sera ignoré.
resolve.browserField #
- Type:** "booléen".
- Défaut:
true
- Déprogrammé
Activation ou non de la résolution du champ browser
.
Dans le futur, la valeur par défaut de resolve.mainFields
sera ['browser', 'module', 'jsnext:main', 'jsnext']
et cette option sera supprimée.
resolve.extensions #
- Type:**
string[]
. - Défaut:
['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json']
.
Liste des extensions de fichiers à essayer pour les importations qui omettent les extensions. Notez qu'il n'est PAS recommandé d'omettre les extensions pour les types d'importation personnalisés (par exemple .vue
) car cela peut interférer avec l'IDE et le support des types.
resolve.preserveSymlinks #
- Type:**
boolean
- Défaut:
false
En activant ce paramètre, vite détermine l'identité du fichier par le chemin d'accès original (c'est-à-dire le chemin sans suivre les liens symboliques) au lieu du chemin réel (c'est-à-dire le chemin après avoir suivi les liens symboliques).
css.modules #
- Type:ts
interface CSSModulesOptions { scopeBehaviour? : 'global' | 'local'. globalModulePaths ? RegExp[] generateScopedName ? | chaîne de caractères | ((name : string, filename : string, css : string) => string) hashPrefix? : string /** * par défaut : null */ localsConvention ? | 'camelCase | 'camelCaseOnly | 'dashes' (tirets) | 'dashesOnly | null }
Configure le comportement des modules CSS. Les options sont transmises à postcss-modules.
css.postcss #
- Type: `string | (postcss.ProcessOptions & { plugins? : postcss.AcceptedPlugin[] })``
Configuration PostCSS en ligne ou un répertoire personnalisé pour rechercher la configuration PostCSS à partir de (par défaut, la racine du projet).
Pour la configuration PostCSS en ligne, il attend le même format que postcss.config.js
. Mais pour la propriété plugins
, seul array format peut être utilisé.
La recherche est faite en utilisant postcss-load-config et seuls les noms de fichiers de configuration supportés sont chargés.
Notez que si une configuration en ligne est fournie, Vite ne cherchera pas d'autres sources de configuration PostCSS.
css.preprocessorOptions #
- Type:
Record<string, object>
Spécifie les options à passer aux pré-processeurs CSS. Les extensions de fichiers sont utilisées comme clés pour les options. Exemple :
``js export default defineConfig({ css : { preprocessorOptions : { scss : { additionalData : $injectedColor : orange;
}, styl : { additionalData : $injectedColor ?= orange
} } } })
## css.devSourcemap
- **Expérimental**
- **Type:** `boolean`
- **Défaut:** `false`
Active ou non les cartes de source pendant le développement.
## json.namedExports
- **Type:** `boolean`
- **Défaut:** `true`
Prise en charge ou non des importations nommées à partir de fichiers `.json`.
## json.stringify
- **Type:** `boolean`
- **Défaut:** `false`
S'il est défini à `true`, le JSON importé sera transformé en `export default JSON.parse("...")`, ce qui est nettement plus performant que les littéraux d'objets, surtout lorsque le fichier JSON est volumineux.
L'activation de cette option désactive les importations nommées.
## esbuild
- **Type:** `ESBuildOptions | false`
`ESBuildOptions` étend [les options de transformation propres à esbuild] (https://esbuild.github.io/api/#transform-api). Le cas d'utilisation le plus courant est la personnalisation de JSX :
``js
export default defineConfig({
esbuild : {
jsxFactory : 'h',
jsxFragment : 'Fragment'.
}
})
Par défaut, esbuild est appliqué aux fichiers ts
, jsx
et tsx
. Vous pouvez personnaliser cela avec esbuild.include
et esbuild.exclude
, qui peuvent être une regex, un motif picomatch, ou un tableau des deux.
De plus, vous pouvez aussi utiliser esbuild.jsxInject
pour injecter automatiquement des imports d'aide JSX pour chaque fichier transformé par esbuild :
js export default defineConfig({ esbuild : { jsxInject : `import React from 'react'
} })
Lorsque le paramètre [`build.minify`](./build-options.md#build-minify) est `true`, toutes les optimisations minify sont appliquées par défaut. Pour en désactiver [certains aspects](https://esbuild.github.io/api/#minify), mettez l'une des options `esbuild.minifyIdentifiers`, `esbuild.minifySyntax`, ou `esbuild.minifyWhitespace` à `false`. Notez que l'option `esbuild.minify` ne peut pas être utilisée pour remplacer `build.minify`.
Mettre à `false` pour désactiver les transformations esbuild.
## assetsInclude
- **Type:** `string | RegExp | (string | RegExp)[]``
- **Relié:** [Gestion des actifs statiques](/guide/assets)
Spécifiez des [motifs picomatch](https://github.com/micromatch/picomatch#globbing-features) supplémentaires à traiter comme des actifs statiques de sorte que :
- Ils seront exclus du pipeline de transformation du plugin lorsqu'ils sont référencés à partir de HTML ou demandés directement par `fetch` ou XHR.
- Les importer depuis JS retournera leur chaîne d'URL résolue (ceci peut être écrasé si vous avez un plugin `enforce : 'pre'` pour gérer le type de ressource différemment).
La liste des types d'actifs intégrés est disponible [ici] (https://github.com/vitejs/vite/blob/main/packages/vite/src/node/constants.ts).
**Exemple:**
``js
export default defineConfig({
assetsInclude : ['**/*.gltf']
})
logLevel #
- Type: `'info' | 'warn' | 'error' | 'silent'``
Ajuste la verbosité de la sortie de la console. La valeur par défaut est 'info'
.
clearScreen #
- Type:**
boolean
- Défaut:
true
Défini à false
pour empêcher Vite d'effacer l'écran du terminal lors de l'enregistrement de certains messages. En ligne de commande, utilisez --clearScreen false
.
envDir #
- Type:
string
- Défaut:
root
Le répertoire à partir duquel les fichiers .env
sont chargés. Peut être un chemin absolu, ou un chemin relatif à la racine du projet.
Voir ici pour plus d'informations sur les fichiers d'environnement.
envPrefix #
- Type:
string | string[]
- Défaut:
VITE_
Les variables env commençant par envPrefix
seront exposées au code source de votre client via i
NOTES DE SÉCURITÉ
envPrefix
ne doit pas être défini comme ''
, ce qui exposerait toutes vos variables env et provoquerait une fuite inattendue d'informations sensibles. Vite lancera une erreur en détectant ''
. :: :
appType #
- Type:
'spa' | 'mpa' | 'custom'
- Défaut: `'spa'``.
Indique si votre application est une application monopage (SPA), une application multipage (MPA) ou une application personnalisée (SSR et frameworks avec traitement HTML personnalisé) :
'spa'
: incluez le middleware de repli SPA et configurez sirv avecsingle : true
dans l'aperçu.'mpa'
: inclure seulement les intergiciels HTML non-SPA'custom'
: ne pas inclure les intergiciels HTML
Pour en savoir plus, consultez le [guide SSR] de Vite (/guide/ssr#vite-cli). Voir aussi : server.middlewareMode
.