Skip to content
On this page

API JavaScript

Les API JavaScript de Vite sont entièrement typées, et il est recommandé d'utiliser TypeScript ou d'activer la vérification de type JS dans VS Code pour tirer parti de l'intellisense et de la validation.

createServer

Signature de type:

js
function asynchrone createServer(inlineConfig? : InlineConfig) : Promise<ViteDevServer> : 1.

Exemple d'utilisation:

js
import { fileURLToPath } from 'url' (en anglais)
import { createServer } from 'vite' (en anglais)

const __dirname = fileURLToPath(new URL('.', import.meta.url))

;(async () => {
  const server = await createServer({
    // toutes les options valides de configuration de l'utilisateur, plus `mode` et `configFile`.
    configFile : false,
    root : __dirname,
    server : {
      port : 1337
    }
  })
  attendez que server.listen()

  server.printUrls()
})()

TIP

Lorsque vous utilisez createServer et build dans le même processus Node.js, les deux fonctions dépendent de process.env.NODE_ENV pour fonctionner correctement, ce qui dépend également de l'option de configuration mode. Pour éviter un comportement conflictuel, définissez process.env.NODE_ENV ou le mode des deux APIs à development. Sinon, vous pouvez créer un processus enfant pour exécuter les API séparément.

InlineConfig

L'interface InlineConfig étend UserConfig avec des propriétés supplémentaires :

  • configFile : spécifie le fichier de configuration à utiliser. S'il n'est pas défini, Vite essaiera d'en résoudre un automatiquement à partir de la racine du projet. Mettez la valeur false pour désactiver la résolution automatique.
  • envFile : Mettre à false pour désactiver les fichiers .env.

ResolvedConfig

L'interface ResolvedConfig possède toutes les mêmes propriétés qu'un UserConfig, sauf que la plupart des propriétés sont résolues et non définies. Elle contient également des utilitaires comme :

  • config.assetsInclude : Une fonction pour vérifier si un id est considéré comme un actif.
  • config.logger : L'objet logger interne de Vite.

ViteDevServer

js
interface ViteDevServer {
  /**
   * L'objet de configuration Vite résolu.
   */
  config : ResolvedConfig
  /**
   * Une instance d'application de connexion
   * - Peut être utilisée pour attacher des middlewares personnalisés au serveur de développement.
   * Peut également être utilisée comme fonction de gestion d'un serveur http personnalisé.
   * ou en tant qu'intergiciel dans tout cadre Node.js de type connect.
   *
   * https://github.com/senchalabs/connect#use-middleware
   */
  middlewares : Connect.Server
  /**
   * Instance de serveur http native de Node.
   * Sera nulle en mode middleware.
   */
  httpServer : http.Server | null
  /**
   * Instance de l'observateur de Chokidar.
   * https://github.com/paulmillr/chokidar#api
   */
  watcher : FSWatcher
  /**
   * Serveur de socket Web avec la méthode `send(payload)`.
   */
  ws : WebSocketServer
  /**
   * Conteneur de plugin Rollup qui peut exécuter les hooks de plugin sur un fichier donné.
   */
  pluginContainer : PluginContainer
  /**
   * Graphique de module qui suit les relations d'importation, le mappage url/fichier et l'état de l'hmr.
   * et l'état de l'hmr.
   */
  moduleGraph : ModuleGraph
  /**
   * Les urls résolues que Vite imprime sur la CLI. null en mode middleware ou
   * avant que `server.listen` ne soit appelé.
   */
  resolvedUrls : ResolvedServerUrls | null
  /**
   * Résoudre, charger et transformer une URL de manière programmée et obtenir le résultat sans passer par le pipeline de requêtes http.
   * sans passer par le pipeline de requête http.
   */
  transformRequest(
    url : string,
    options ? TransformOptions
  ) : Promise<TransformResult | null>
  /**
   * Applique les transformations HTML intégrées de Vite et les transformations HTML des plugins.
   */
  transformIndexHtml(url : string, html : string) : Promise<string>
  /**
   * Charge une URL donnée en tant que module instancié pour SSR.
   */
  ssrLoadModule(
    url : string,
    options ? { fixStacktrace? : boolean }
  ) : Promise<Record<string, any>>
  /**
   * Fixe le stacktrace de l'erreur ssr.
   */
  ssrFixStacktrace(e : Error) : void
  /**
   * Déclenche HMR pour un module dans le graphe des modules. Vous pouvez utiliser l'API `server.moduleGraph' * pour récupérer le module à utiliser.
   * pour récupérer le module à recharger. Si `hmr` est false, c'est un no-op.
   */
  reloadModule(module : ModuleNode) : Promise<void>
  /**
   * Démarre le serveur.
   */
  listen(port? : nombre, isRestart? : booléen) : Promise<ViteDevServer> : boolean
  /**
   * Redémarrer le serveur.
   *
   * @param forceOptimize - Force l'optimiseur à re-bundle, comme le drapeau cli --force.
   */
  restart(forceOptimize? : booléen) : Promise<void>
  /**
   * Arrête le serveur.
   */
  close() : Promise<void>
}

build

Signature de type:

js
function asynchrone build(
  inlineConfig ? InlineConfig
) : Promise<RollupOutput|RollupOutput[]>

Exemple d'utilisation:

js
import path from 'path'
import { fileURLToPath } from 'url'
import { build } from 'vite'

const __dirname = fileURLToPath(new URL('.', import.meta.url))

;(async () => {
  await build({
    root : path.resolve(__dirname, './project'),
    base : '/foo/',
    build : {
      rollupOptions : {
        // ...
      }
    }
  })
})()

preview

Signature du type:

js
funciton asynchrone preview(inlineConfig? : InlineConfig) : Promise<PreviewServer>

Exemple d'utilisation:

js
import { preview } from 'vite'
;(async () => {
  const previewServer = await preview({
    // toute option de configuration utilisateur valide, plus `mode` et `configFile`.
    aperçu : {
      port : 8080,
      open : true
    }
  })

  previewServer.printUrls()
})()

resolveConfig

Signature de type:

js
function asynchrone resolveConfig(
  inlineConfig : InlineConfig,
  command : 'build' | 'serve',
  defaultMode = 'development'
) : Promise<ResolvedConfig>

La valeur de command est serve dans dev (dans la cli vite, vite dev, et vite serve sont des alias).

mergeConfig

Signature de type:

js
function mergeConfig(
  par défaut : Record<string, any>,
  dérogations : Record<string, any>,
  isRoot = true
) : Record<string, any>

Fusionne profondément deux configurations Vite. isRoot représente le niveau dans la configuration Vite qui est fusionné. Par exemple, mettez false si vous fusionnez deux options build.

searchForWorkspaceRoot

Signature de type:

js
fonction searchForWorkspaceRoot(
  current : chaîne,
  root = searchForPackageRoot(current)
) : chaîne

Relié: server.fs.allow

Recherche la racine de l'espace de travail potentiel si elle remplit les conditions suivantes, sinon elle se rabat sur root :

  • contient le champ workspaces dans package.json
  • contient l'un des fichiers suivants
    • lerna.json
    • pnpm-workspace.yaml

loadEnv

Signature de type:

js
fonction loadEnv(
  mode : string,
  envDir : string,
  préfixes : chaîne de caractères | chaîne de caractères[] = 'VITE_'
) : Record<string, string>

Relié: Fichiers .env

Charge les fichiers .env dans le envDir. Par défaut, seules les variables env préfixées par VITE_ sont chargées, sauf si prefixes est modifié.

normalizePath

Signature de type:

js
fonction normalizePath(id : string) : string

Relié: Normalisation des chemins

Normalise un chemin pour permettre l'interopérabilité entre les plugins Vite.

transformWithEsbuild

Signature de type:

js
fonction asynchrone transformWithEsbuild(
  code : chaîne,
  filename : string,
  options ? EsbuildTransformOptions,
  inMap? : objet
) : Promise<ESBuildTransformResult> (Promesse)

Transforme JavaScript ou TypeScript avec esbuild. Utile pour les plugins qui préfèrent correspondre à la transformation esbuild interne de Vite.

loadConfigFromFile

Signature de type:

js
Fonction asynchrone loadConfigFromFile(
  configEnv : ConfigEnv,
  configFile : string,
  configRoot : string = process.cwd(),
  logLevel ? LogLevel
) : Promise<{
  path : string
  config : UserConfig
  dépendances : string[]
} | null>

Chargez manuellement un fichier de configuration Vite avec esbuild.

Documentation traduite. MIT License. (afc29b4d)