Vite Konfigurieren
Beim Ausführen von vite aus der Befehlszeile versucht VITE automatisch, eine Konfigurationsdatei mit dem Namen vite.config.js in Project Root zu beheben (andere JS- und TS -Erweiterungen werden ebenfalls unterstützt).
Die grundlegendste Konfigurationsdatei sieht so aus:
export default {
// Konfigurationsoptionen
}Hinweis vite unterstützt die Verwendung der ES -Module -Syntax in der Konfigurationsdatei, auch wenn das Projekt nicht den nativen Knoten -ESM verwendet, z. B. type: "module" in package.json . In diesem Fall ist die Konfigurationsdatei vor dem Laden automatisch vorverarbeitet.
Sie können auch explizit eine Konfigurationsdatei angeben, die mit der --config CLI -Option verwendet werden soll (relativ zu cwd aufgelöst):
vite --config my-config.jsCONFIG LOADING
Standardmäßig verwendet Vite esbuild , um die Konfiguration in eine temporäre Datei zu bündeln und zu laden. Dies kann beim Importieren von Typscript -Dateien in einem Monorepo Probleme verursachen. Wenn Sie Probleme mit diesem Ansatz begegnen, können Sie --configLoader runner angeben, um stattdessen den Modulläufer zu verwenden, der keine temporäre Konfiguration erstellt und alle Dateien im laufenden Fliegen transformiert. Beachten Sie, dass Modulläufer CJs in Konfigurationsdateien nicht unterstützt, aber externe CJS -Pakete sollten wie gewohnt funktionieren.
Wenn Sie eine Umgebung verwenden, die TypeScript (z. B. node --experimental-strip-types ) unterstützt, oder wenn Sie nur ein einfaches JavaScript schreiben, können Sie --configLoader native angeben, um die native Laufzeit der Umgebung zum Laden der Konfigurationsdatei zu verwenden. Beachten Sie, dass Aktualisierungen zu Modulen, die von der Konfigurationsdatei importiert wurden, nicht erkannt werden und daher den Vite-Server nicht automatisch anbieten.
Config IntelliSense
Da Vite mit Typen mit Typenschriften versandt, können Sie die IntelliSense Ihrer Ideen mit JSDOC -Typ -Tipps nutzen:
/** @type {import ('vite'). userconfig} */
export default {
// ...
}Alternativ können Sie den defineConfig -Helfer verwenden, der IntelliSense ohne JSDOC -Anmerkungen liefern sollte:
import { defineConfig } from 'vite'
export default defineConfig({
// ...
})Vite unterstützt auch TypeScript -Konfigurationsdateien. Sie können vite.config.ts mit der defineConfig -Helfer -Funktion oben oder mit dem satisfies -Operator verwenden:
import type { UserConfig } from 'vite'
export default {
// ...
} satisfies UserConfigBedingte Konfiguration
Wenn die Konfiguration die Optionen basierend auf dem Befehl ( serve oder build ), dem verwendeten Modus , konditionell bestimmen muss, wenn es sich um einen SSR -Build ( isSsrBuild ) handelt oder um den Build ( isPreview ) voranzutreiben, kann sie stattdessen eine Funktion exportieren:
import { defineConfig } from 'vite'
// ---schneiden---
export default defineConfig(({ command, mode, isSsrBuild, isPreview }) => {
if (command === 'serve') {
return {
// devspezifische Konfiguration
}
} else {
// Befehl === 'Build'
return {
// spezielle Konfiguration erstellen
}
}
})Es ist wichtig zu beachten, dass der command -Wert in Vite's API serve während Dev (in der CLI vite , vite dev und vite serve sind Aliase) und build beim Bau von Produktion ( vite build ).
isSsrBuild und isPreview sind zusätzliche optionale Flags, um die Art von build bzw. serve Befehlen zu unterscheiden. Einige Tools, die die VITE -Konfiguration laden, unterstützen diese Flags möglicherweise nicht und passieren stattdessen undefined . Daher wird empfohlen, einen expliziten Vergleich mit true und false zu verwenden.
Asynchrische Konfiguration
Wenn die Konfiguration asynchronisierte Funktionen aufrufen muss, kann sie stattdessen eine asynchronisierende Funktion exportieren. Und diese asynchronisierte Funktion kann auch defineConfig für eine verbesserte IntelliSense -Unterstützung übergeben werden:
import { defineConfig } from 'vite'
// ---schneiden---
export default defineConfig(async ({ command, mode }) => {
const data = await asyncFunction()
return {
// vite config
}
})Verwenden Von Umgebungsvariablen in Der Konfiguration
Umgebungsvariablen können wie gewohnt aus process.env erhalten werden.
Beachten Sie, dass Vite .env -Dateien standardmäßig nicht lädt, da die zu laden laden Dateien erst nach der Bewertung der VITE -Konfiguration ermittelt werden können, beispielsweise die root und envDir Optionen auf das Ladeverhalten beeinflussen. Sie können jedoch den exportierten loadEnv -Helfer verwenden, um die spezifische .env -Datei bei Bedarf zu laden.
import { defineConfig, loadEnv } from 'vite'
export default defineConfig(({ mode }) => {
// Laden Sie die Env -Datei basierend auf `mode` im aktuellen Arbeitsverzeichnis.
// Setzen Sie den dritten Parameter auf "", um alle Umwelt unabhängig von dem zu laden
// `VITE_` Präfix.
const env = loadEnv(mode, process.cwd(), '')
return {
// vite config
define: {
__APP_ENV__: JSON.stringify(env.APP_ENV),
},
}
})