Sponsored Content
Skip to content

Gemeinsame Optionen ​

Sofern nicht anders angegeben, gelten die Optionen in diesem Abschnitt fĂŒr alle Dev-, Build- und Preview-Versionen.

root ​

  • Typ: string
  • Standard: process.cwd()

Projektstammverzeichnis (wo index.html sich befindet). Kann ein absoluter Pfad oder ein Pfad relativ zum aktuellen Arbeitsverzeichnis sein.

Siehe Projektstamm fĂŒr weitere Details.

base ​

Öffentlicher Basispfad bei der AusfĂŒhrung in Entwicklung oder Produktion. GĂŒltige Werte sind:

  • Absoluter URL-Pfadname, z.B. /foo/
  • VollstĂ€ndige URL, z. B. https://bar.com/foo/ (Der Ursprungsteil wird in der Entwicklung nicht verwendet, daher ist der Wert derselbe wie /foo/)
  • Leere Zeichenfolge oder ./ (fĂŒr eingebettete Bereitstellung)

Siehe Öffentlicher Basispfad fĂŒr weitere Details.

Modus ​

  • Typ: string
  • Standard: 'development' fĂŒr die AusfĂŒhrung, 'production' fĂŒr den Build

Die Angabe in der Konfiguration ĂŒberschreibt den Standardmodus fĂŒr AusfĂŒhrung und Build. Dieser Wert kann auch ĂŒber die Befehlszeile mit der Option --mode ĂŒberschrieben werden.

Siehe Umgebungsvariablen und Modi fĂŒr weitere Details.

definieren ​

  • Typ: Record<string, string>

Definieren von globalen Konstantenersatzwerten. EintrÀge werden wÀhrend der Entwicklung als Globals definiert und wÀhrend des Builds statisch ersetzt.

Vite verwendet Oxcs Definitionsfunktion, um Ersetzungen durchzufĂŒhren, daher mĂŒssen WertausdrĂŒcke eine Zeichenkette sein, die einen JSON-serialisierbaren Wert (null, boolesch, Zahl, Zeichenkette, Array oder Objekt) oder einen einzelnen Bezeichner enthĂ€lt. Bei Werten, die keine Strings sind, konvertiert Vite sie automatisch mit JSON.stringify in einen String.

Beispiel:

js
export default defineConfig({
  define: {
    __APP_VERSION__: JSON.stringify('v1.0.0'),
    __API_URL__: 'window.__backend_api_url',
  },
})

HINWEIS

FĂŒr TypeScript-Benutzer stellen Sie sicher, dass Sie die TyperklĂ€rungen in der Datei vite-env.d.ts hinzufĂŒgen, um TypprĂŒfungen und Intellisense zu erhalten.

Beispiel:

ts
// vite-env.d.ts
declare const __APP_VERSION__: string

Plugins ​

  • Typ: (Plugin | Plugin[] | Promise<Plugin | Plugin[]>)[]

Array von Plugins zur Verwendung. Falsche Plugins werden ignoriert, und Arrays von Plugins werden abgeflacht. Wenn ein Versprechen zurĂŒckgegeben wird, wird es vor der AusfĂŒhrung aufgelöst. Siehe Plugin-API fĂŒr weitere Details zu Vite-Plugins.

publicDir ​

  • Typ: string | false
  • Standard: "public"

Verzeichnis zur Bereitstellung von einfachen statischen Assets. Dateien in diesem Verzeichnis werden wÀhrend der Entwicklung unter / bereitgestellt und wÀhrend des Builds in das Stammverzeichnis von outDir kopiert und immer unverÀndert bereitgestellt oder kopiert. Der Wert kann entweder ein absoluter Dateisystempfad oder ein Pfad relativ zum Projektstamm sein.

Die Definition von publicDir als false deaktiviert diese Funktion.

Siehe Das public-Verzeichnis fĂŒr weitere Details.

cacheDir ​

  • Typ: string
  • Standard: "node_modules/.vite"

Verzeichnis zur Speicherung von Cache-Dateien. Dateien in diesem Verzeichnis sind vorab gebĂŒndelte AbhĂ€ngigkeiten oder einige andere von Vite generierte Cache-Dateien, die die Leistung verbessern können. Sie können die Flagge --force verwenden oder das Verzeichnis manuell löschen, um die Cache-Dateien neu zu generieren. Der Wert kann entweder ein absoluter Dateisystempfad oder ein Pfad relativ zum Projektstamm sein. StandardmĂ€ĂŸig auf .vite, wenn keine package.json erkannt wird.

resolve.alias ​

  • Typ:Record<string, string> | Array<{ find: string | RegExp, replacement: string }>

Definiert Aliasse, welche Werte in import- oder require-Statements ersetzen. Die Funktionsweise Àhnelt @rollup/plugin-alias.

Die Reihenfolge der EintrÀge ist wichtig, da zuerst definierte Regeln auch zuerst angewendet werden.

Beim Aliasieren von Dateisystempfaden sollten immer absolute Pfade verwendet werden. Relative Alias-Werte werden wie angegeben verwendet und nicht in Dateisystempfade aufgelöst.

Fortgeschrittene benutzerdefinierte Auflösung kann ĂŒber Plugins erreicht werden.

Verwendung mit SSR

Wenn Sie Aliase fĂŒr SSR-externe AbhĂ€ngigkeiten konfiguriert haben, möchten Sie möglicherweise die tatsĂ€chlichen node_modules-Pakete als Alias festlegen. Sowohl Yarn als auch pnpm unterstĂŒtzen das Aliasieren ĂŒber das PrĂ€fix npm:.

Objektformat (Record<string, string>) ​

Das Objektformat ermöglicht die Spezifizierung eines Alias als SchlĂŒssel und den dazugehörigen Wert als tatsĂ€chlichen Import-Wert. Zum Beispiel:

js
resolve: {
  alias: {
    utils: '../../../utils',
    'batman-1.0.0': './joker-1.5.0'
  }
}

Arrayformat (Array<{ find: string | RegExp, replacement: string }>) ​

Das Arrayformat erlaubt die Spezifizierung eines Alias als Objekt, welches nĂŒtzlich fĂŒr komplexe SchlĂŒssel-Wert-Paare sein kann.

js
resolve: {
  alias: [
    { find: 'utils', replacement: '../../../utils' },
    { find: 'batman-1.0.0', replacement: './joker-1.5.0' },
  ]
}

Wenn find ein regulÀrer Ausdruck ist, kann die replacement-Option Ersetzungsmuster verwenden, wie $1. Um beispielsweise Erweiterungen mit einer anderen zu entfernen, kann folgendes Muster verwendet werden:

js
{ find:/^(.*)\.js$/, replacement: '$1.alias' }

resolve.dedupe ​

  • Typ: string[]

Wenn Sie kopierte Kopien derselben AbhĂ€ngigkeit in Ihrer App haben (wahrscheinlich aufgrund des Hoistings oder verknĂŒpfter Pakete in Monorepos), verwenden Sie diese Option, um Vite dazu zu zwingen, aufgelistete AbhĂ€ngigkeiten immer auf dieselbe Kopie (aus dem Projektstamm) zu lösen.

SSR + ESM

FĂŒr SSR-Builds funktioniert die Deduplizierung fĂŒr ESM-Build-Ausgaben, die von build.rollupOptions.output konfiguriert sind, nicht. Ein Workaround besteht darin, CJS-Build-Ausgaben zu verwenden, bis ESM eine bessere Plugin-UnterstĂŒtzung fĂŒr die Modulladung hat.

resolve.conditions non-inherit ​

  • Typ: string[]
  • Standard: ['module', 'browser', 'development|production'] (defaultClientConditions)

ZusÀtzliche erlaubte Bedingungen bei der Auflösung von bedingten Exports aus einem Paket.

Ein Paket mit bedingten Exports kann das folgende exports-Feld in seiner package.json haben:

json
{
  "exports": {
    ".": {
      "import": "./index.mjs",
      "require": "./index.js"
    }
  }
}

Hier sind import und require "Bedingungen". Bedingungen können verschachtelt sein und sollten von am spezifischsten bis am wenigsten spezifisch angegeben werden.

development|production ist ein spezieller Wert, der je nach dem Wert von process.env.NODE_ENV durch production oder development ersetzt wird. Er wird durch production ersetzt, wenn process.env.NODE_ENV === 'production' ist, und andernfalls durch development.

Beachten Sie, dass die Bedingungen import, require und default immer angewendet werden, wenn die Anforderungen erfĂŒllt sind.

Außerdem wird die style-Bedingung angewendet, wenn Style-Importe aufgelöst werden, z. B. @import 'my-library'. Bei CSS-Pre-Prozessoren werden deren Bedingungen ebenfalls angewendet, das heißt sass fĂŒr Sass und less fĂŒr Less.

resolve.mainFields non-inherit ​

  • Typ: string[]
  • Standard: ['browser', 'module', 'jsnext:main', 'jsnext'] (defaultClientMainFields)

Liste der Felder in package.json, die bei der Auflösung des Einstiegspunktes eines Pakets zu versuchen sind. Beachten Sie, dass dies einen geringeren Vorrang hat als bedingte Exporte, die aus dem Feld exports aufgelöst werden: Wenn ein Einstiegspunkt erfolgreich aus exports aufgelöst wird, wird das Hauptfeld ignoriert.

resolve.extensions ​

  • Typ: string[]
  • Standard: ['.mjs', '.js', '.mts', '.ts', '.jsx', '.tsx', '.json']

Liste der Dateierweiterungen, die fĂŒr Importe ohne Erweiterungen ausprobiert werden sollen. Beachten Sie, dass es NICHT empfohlen wird, Erweiterungen fĂŒr benutzerdefinierte Importtypen (z. B. .vue) auszulassen, da dies die UnterstĂŒtzung in der IDE und der TypprĂŒfung stören kann.

  • Typ: boolean
  • Standard: false

Durch Aktivieren dieser Einstellung bestimmt Vite die DateiidentitĂ€t anhand des ursprĂŒnglichen Dateipfads (d. h. des Pfads ohne das Folgen von Symbolischen Links), anstelle des realen Dateipfads (d. h. des Pfads nach dem Folgen von Symbolischen Links).

resolve.tsconfigPaths ​

  • Typ: boolean
  • Standard: false

Aktiviert die Funktion der tsconfig zur Pfadauflösung. Die Option paths in der tsconfig.json wird genutzt, um Importe aufzulösen. Siehe Funktionen fĂŒr mehr Details.

html.cspNonce ​

Ein Platzhalter fĂŒr einen Nonce-Wert, der bei der Generierung von Skript-/Style-Tags verwendet wird. Durch Festlegen dieses Werts wird auch ein Meta-Tag mit Nonce-Wert generiert.

css.modules ​

  • Typ:

    ts
    interface CSSModulesOptions {
      getJSON?: (
        cssFileName: string,
        json: Record<string, string>,
        outputFileName: string,
      ) => void
      scopeBehaviour?: 'global' | 'local'
      globalModulePaths?: RegExp[]
      exportGlobals?: boolean
      generateScopedName?:
        | string
        | ((name: string, filename: string, css: string) => string)
      hashPrefix?: string
      /**
       * default: undefined
       */
      localsConvention?:
        | 'camelCase'
        | 'camelCaseOnly'
        | 'dashes'
        | 'dashesOnly'
        | ((
            originalClassName: string,
            generatedClassName: string,
            inputFile: string,
          ) => string)
    }

Konfigurieren Sie das Verhalten von CSS-Modulen. Die Optionen werden an postcss-modules ĂŒbergeben.

Diese Option hat keine Auswirkungen, wenn Lightning CSS verwendet wird. Wenn aktiviert, sollte css.lightningcss.cssModules verwendet werden.

css.postcss ​

  • Typ: string | (postcss.ProcessOptions & { plugins?: postcss.AcceptedPlugin[] })

Inline-PostCSS-Konfiguration oder ein benutzerdefiniertes Verzeichnis zum Suchen der PostCSS-Konfiguration (Standard ist das Projektstammverzeichnis).

FĂŒr die Inline-PostCSS-Konfiguration wird dasselbe Format wie postcss.config.js erwartet. FĂŒr die plugins-Eigenschaft kann nur das Array-Format verwendet werden.

Die Suche erfolgt mit postcss-load-config und nur die unterstĂŒtzten Konfigurationsdateinamen werden geladen. Konfigurationsdateien außerhalb des Stammverzeichnisses des Arbeitsbereichs (oder des Projekt-Stammverzeichnisses, wenn kein Arbeitsbereich gefunden wird) werden standardmĂ€ĂŸig nicht durchsucht. Sie können bei Bedarf einen benutzerdefinierten Pfad außerhalb des Stammverzeichnisses angeben, um stattdessen die spezifische Konfigurationsdatei zu laden.

Hinweis: Wenn eine Inline-Konfiguration bereitgestellt wird, sucht Vite nicht nach anderen PostCSS-Konfigurationsquellen.

css.preprocessorOptions ​

  • Typ: Record<string, object>

Geben Sie Optionen an, die an CSS-PrĂ€prozessoren ĂŒbergeben werden sollen. Die Dateierweiterungen werden als SchlĂŒssel fĂŒr die Optionen verwendet. Die unterstĂŒtzten Optionen fĂŒr jeden PrĂ€prozessor finden Sie in der jeweiligen Dokumentation:

  • sass/scss:
    • Nutzt sass-embedded, falls es installiert ist. Ansonsten wird sass verwendet. FĂŒr die höchste Performanz empfehlen wir, das Paket sass-embedded zu installieren.
    • Optionen (modern)
  • less: Optionen.
  • styl/stylus: Nur define wird unterstĂŒtzt, das als Objekt ĂŒbergeben werden kann.

Beispiel:

js
export default defineConfig({
  css: {
    preprocessorOptions: {
      less: {
        math: 'parens-division',
      },
      styl: {
        define: {
          $specialColor: new stylus.nodes.RGBA(51, 197, 255, 1),
        },
      },
      scss: {
        api: 'modern-compiler', // or "modern"
        importers: [
          // ...
        ],
      },
    },
  },
})

css.preprocessorOptions[extension].additionalData ​

  • Typ: string | ((source: string, filename: string) => (string | { content: string; map?: SourceMap }))

Diese Option kann verwendet werden, um zusĂ€tzlichen Code fĂŒr jeden Stil-Inhalt einzufĂŒgen. Beachten Sie, dass, wenn Sie tatsĂ€chliche Stile und nicht nur Variablen einfĂŒgen, diese Stile im endgĂŒltigen Paket dupliziert werden.

Beispiel:

js
export default defineConfig({
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: `$injectedColor: orange;`,
      },
    },
  },
})

Import von Dateien

Da derselbe Code vor Dateien in verschiedenen Verzeichnissen eingefĂŒgt wird, werden relative Pfade nicht korrekt aufgelöst. Verwenden Sie stattdessen absolute Pfade oder Aliase.

css.preprocessorMaxWorkers ​

  • Typ: number | true
  • Standard: true

Spezifiziert die maximale Anzahl an Threads, die CSS-PrĂ€prozessoren verwenden können. true beschreibt die Anzahl der CPUs - 1. Wenn der Wert auf 0 gesetzt wird, erstellt Vite keine Worker und die PrĂ€prozessoren werden im Haupt-Thread ausgefĂŒhrt.

AbhĂ€ngig von den PrĂ€prozessor-Optionen, fĂŒhrt Vite den PrĂ€prozessor auf dem Haupt-Thread aus, auch wenn diese Option nicht auf 0 gesetzt ist.

css.devSourcemap ​

Definiert, ob Sourcemaps wÀhrend der Entwicklung aktiviert werden sollen.

css.transformer ​

  • Experimentell: Feedback geben
  • Typ: 'postcss' | 'lightningcss'
  • Standard: 'postcss'

WĂ€hlt die fĂŒr die CSS-Verarbeitung verwendete Engine aus. Weitere Informationen finden Sie unter Lightning CSS.

@import duplizieren

Beachten Sie, dass postcss (postcss-import) derzeit ein anderes Verhalten mit duplizierten @import von Browsern aufweist. Siehe postcss/postcss-import#462.

css.lightningcss ​

js
import type {
  CSSModulesConfig,
  Drafts,
  Features,
  NonStandard,
  PseudoClasses,
  Targets,
} from 'lightningcss'
js
{
  targets?: Targets
  include?: Features
  exclude?: Features
  drafts?: Drafts
  nonStandard?: NonStandard
  pseudoClasses?: PseudoClasses
  unusedSymbols?: string[]
  cssModules?: CSSModulesConfig,
  // ...
}

Konfigurieren Sie Lightning CSS. Die vollstÀndigen Transformationsoptionen finden Sie im Lightning CSS-Repo.

json.namedExports ​

  • Typ: boolean
  • Standard: true

Definiert, ob benannte Imports aus .json-Dateien unterstĂŒtzt werden sollen.

json.stringify ​

  • Typ: boolean | 'auto'
  • Standard: 'auto'

Wenn auf true gesetzt, wird importiertes JSON in export default JSON.parse("...") umgewandelt, was wesentlich performanter ist als Objektliterale, insbesondere wenn die JSON-Datei groß ist.

Bei der Einstellung 'auto' werden die Daten nur dann stringifiziert, wenn die Daten grĂ¶ĂŸer als 10kB sind.

oxc ​

  • Typ: OxcOptions | false

OxcOptions erweitert die Transformationsoptionen von Oxc. Der hÀufigste Anwendungsfall ist die Anpassung von JSX:

js
export default defineConfig({
  oxc: {
    jsx: {
      runtime: 'classic',
      pragma: 'h',
      pragmaFrag: 'Fragment',
    },
  },
})

StandardmĂ€ĂŸig wird die Transformation von Oxc auf Dateien mit den Erweiterungen ts, jsx und tsx angewendet. Sie können dies mit oxc.include und oxc.exclude anpassen, die eine Regex, ein picomatch-Muster oder ein Array davon sein können.

DarĂŒber hinaus können Sie auch oxc.jsxInject verwenden, um automatisch JSX-Helper-Imports fĂŒr jede von Oxc transformierte Datei einzufĂŒgen:

js
export default defineConfig({
  oxc: {
    jsxInject: `import React from 'react'`,
  },
})

Auf false setzen, um die Oxc-Transformation zu deaktivieren.

esbuild ​

  • Typ: ESBuildOptions | false
  • Veraltet

Diese Option wird intern zu oxc konvertiert. Verwenden Sie stattdessen die oxc-Option.

assetsInclude ​

Geben Sie zusÀtzliche picomatch-Muster an, die als statische Assets behandelt werden sollen, damit:

  • Sie aus der Plugin-Transformationspipeline ausgeschlossen werden, wenn sie aus HTML referenziert oder direkt ĂŒber fetch oder XHR angefordert werden.

  • Beim Importieren aus JS wird ihre aufgelöste URL-Zeichenfolge zurĂŒckgegeben (dies kann ĂŒberschrieben werden, wenn Sie ein Plugin mit enforce: 'pre' haben, um den Asset-Typ anders zu behandeln).

Die eingebauten Asset-Typenliste finden Sie hier.

Beispiel:

js
export default defineConfig({
  assetsInclude: ['**/*.gltf'],
})

logLevel ​

  • Typ: 'info' | 'warn' | 'error' | 'silent'

Passen Sie die Konsolenausgabe an. StandardmĂ€ĂŸig ist dies auf 'info' gesetzt.

customLogger ​

  • Typ:

    ts
    interface Logger {
      info(msg: string, options?: LogOptions): void
      warn(msg: string, options?: LogOptions): void
      warnOnce(msg: string, options?: LogOptions): void
      error(msg: string, options?: LogErrorOptions): void
      clearScreen(type: LogType): void
      hasErrorLogged(error: Error | RollupError): boolean
      hasWarned: boolean
    }

Verwenden Sie einen benutzerdefinierten Logger, um Nachrichten zu protokollieren. Sie können die createLogger-API von Vite verwenden, um den Standard-Logger zu erhalten und ihn anpassen, um beispielsweise die Nachricht zu Àndern oder bestimmte Warnungen auszufiltern.

js
import { createLogger, defineConfig } from 'vite'

const logger = createLogger()
const loggerWarn = logger.warn

logger.warn = (msg, options) => {
  // Ignore empty CSS files warning
  if (msg.includes('vite:css') && msg.includes(' is empty')) return
  loggerWarn(msg, options)
}

export default defineConfig({
  customLogger: logger,
})

clearScreen ​

  • Typ: boolean
  • Standard: true

Legen Sie fest, ob der Konsolenbildschirm bei jedem Neustart gelöscht werden soll. Wenn Sie dieses Verhalten deaktivieren möchten, setzen Sie es auf false.

envDir ​

  • Typ: string | false
  • Standard: root

Das Verzeichnis, aus dem die .env-Dateien geladen werden. Kann ein absoluter Pfad oder ein Pfad relativ zum Projektstammverzeichnis sein. false deaktiviert das Laden der .env-Datei.

Weitere Informationen zu Umgebungsdateien finden Sie hier.

envPrefix ​

  • Typ: string | string[]
  • Standard: VITE_

Umgebungsvariablen, die mit envPrefix beginnen, werden ĂŒber import.meta.env in Ihrem Client-Quellcode freigegeben.

SICHERHEITSHINWEISE

envPrefix sollte nicht als '' festgelegt werden, da dies alle Ihre Umgebungsvariablen freigibt und unerwartetes Lecken sensibler Informationen verursachen kann. Vite gibt einen Fehler aus, wenn '' erkannt wird.

Wenn Sie eine nicht vorab festgelegte Variable freigeben möchten, können Sie define verwenden, um sie freizugeben:

js
define: {
  'import.meta.env.ENV_VARIABLE': JSON.stringify(process.env.ENV_VARIABLE)
}

appType ​

  • Typ: 'spa' | 'mpa' | 'custom'
  • Standard: 'spa'

Ob Ihre Anwendung eine Single Page Application (SPA), eine Multi Page Application (MPA) oder eine benutzerdefinierte Anwendung (SSR und Frameworks mit benutzerdefinierter HTML-Behandlung) ist:

  • 'spa': HTML-Middleware einschließen und SPA-Fallback verwenden. Konfigurieren Sie sirv mit single: true in der Vorschau.
  • 'mpa': HTML-Middleware einschließen
  • 'custom': Keine HTML-Middleware einschließen

Weitere Informationen finden Sie im SSR-Handbuch von Vite. Verwandt: server.middlewareMode.

devtools ​

Aktivieren Sie die Ingration fĂŒr devtools, um eine Visualisierung des internen Zustands und einer Build-Analyse zu erhalten. Stellen Sie sicher, dass @vitejs/devtools als AbhĂ€ngigkeit installiert ist. Diese Funktion wird aktuell nur im Build-Modus unterstĂŒtzt.

Schauen Sie sich Vite DevTools an, fĂŒr mehr Details.

future ​

Aktivieren Sie zukĂŒnftige grundlegende Änderungen, um eine reibungslose Migration zur nĂ€chsten Hauptversion von Vite vorzubereiten. Die Liste kann jederzeit aktualisiert, ergĂ€nzt oder gekĂŒrzt werden, wenn neue Funktionen entwickelt werden.

Weitere Informationen zu den möglichen Optionen finden Sie auf der Seite Grundlegende Änderungen.