Appearance
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 p
NODE_ENV
pour fonctionner correctement, ce qui dépend également de l'option de configuration mode
. Pour éviter un comportement conflictuel, définissez p
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 valeurfalse
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 unid
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
danspackage.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.