Skip to content
На этой странице

Free Online Conference

ViteConf - Oct 11

Get your ticket now!

JavaScript API

API-интерфейсы JavaScript Vite полностью типизированы, и рекомендуется использовать TypeScript или включить проверку типов JS в VS Code, чтобы использовать intellisense и проверку.

createServer

Тип подписи:

ts
async function createServer(inlineConfig?: InlineConfig): Promise<ViteDevServer>

Пример использования:

js
import { fileURLToPath } from 'url'
import { createServer } from 'vite'

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

;(async () => {
  const server = await createServer({
    // any valid user config options, plus `mode` and `configFile`
    configFile: false,
    root: __dirname,
    server: {
      port: 1337
    }
  })
  await server.listen()

  server.printUrls()
})()

ПРИМЕЧАНИЕ

При использовании createServer и build в одном и том же процессе Node.js обе функции полагаются на process.env.NODE_ENV для правильной работы, что также зависит от параметра конфигурации mode. Чтобы предотвратить конфликтное поведение, установите для process.env.NODE_ENV или mode двух API значение development. В противном случае вы можете создать дочерний процесс для отдельного запуска API.

InlineConfig

Интерфейс InlineConfig расширяет UserConfig дополнительными свойствами:

  • configFile: укажите используемый файл конфигурации. Если не установлено, Vite попытается автоматически разрешить его из корня проекта. Установите значение false, чтобы отключить автоматическое разрешение.
  • envFile: Установите значение false, чтобы отключить файлы .env.

ResolvedConfig

Интерфейс ResolvedConfig имеет все те же свойства, что и UserConfig, за исключением того, что большинство свойств разрешены и не определены. Он также содержит такие утилиты, как:

  • config.assetsInclude: Функция для проверки, считается ли id ассетом.
  • config.logger: Внутренний объект регистратора Vite.

ResolvedConfig

Интерфейс ResolvedConfig имеет все те же свойства, что и UserConfig, за исключением того, что большинство свойств разрешены и не определены. Он также содержит такие утилиты, как:

  • config.assetsInclude: Функция для проверки, считается ли id асетом.
  • config.logger: Внутренний объект регистратора Vite.

ViteDevServer

ts
interface ViteDevServer {
  /**
   * The resolved Vite config object.
   */
  config: ResolvedConfig
  /**
   * A connect app instance
   * - Can be used to attach custom middlewares to the dev server.
   * - Can also be used as the handler function of a custom http server
   *   or as a middleware in any connect-style Node.js frameworks.
   *
   * https://github.com/senchalabs/connect#use-middleware
   */
  middlewares: Connect.Server
  /**
   * Native Node http server instance.
   * Will be null in middleware mode.
   */
  httpServer: http.Server | null
  /**
   * Chokidar watcher instance.
   * https://github.com/paulmillr/chokidar#api
   */
  watcher: FSWatcher
  /**
   * Web socket server with `send(payload)` method.
   */
  ws: WebSocketServer
  /**
   * Rollup plugin container that can run plugin hooks on a given file.
   */
  pluginContainer: PluginContainer
  /**
   * Module graph that tracks the import relationships, url to file mapping
   * and hmr state.
   */
  moduleGraph: ModuleGraph
  /**
   * The resolved urls Vite prints on the CLI. null in middleware mode or
   * before `server.listen` is called.
   */
  resolvedUrls: ResolvedServerUrls | null
  /**
   * Programmatically resolve, load and transform a URL and get the result
   * without going through the http request pipeline.
   */
  transformRequest(
    url: string,
    options?: TransformOptions
  ): Promise<TransformResult | null>
  /**
   * Apply Vite built-in HTML transforms and any plugin HTML transforms.
   */
  transformIndexHtml(url: string, html: string): Promise<string>
  /**
   * Load a given URL as an instantiated module for SSR.
   */
  ssrLoadModule(
    url: string,
    options?: { fixStacktrace?: boolean }
  ): Promise<Record<string, any>>
  /**
   * Fix ssr error stacktrace.
   */
  ssrFixStacktrace(e: Error): void
  /**
   * Triggers HMR for a module in the module graph. You can use the `server.moduleGraph`
   * API to retrieve the module to be reloaded. If `hmr` is false, this is a no-op.
   */
  reloadModule(module: ModuleNode): Promise<void>
  /**
   * Start the server.
   */
  listen(port?: number, isRestart?: boolean): Promise<ViteDevServer>
  /**
   * Restart the server.
   *
   * @param forceOptimize - force the optimizer to re-bundle, same as --force cli flag
   */
  restart(forceOptimize?: boolean): Promise<void>
  /**
   * Stop the server.
   */
  close(): Promise<void>
}

build

Тип подписи:

ts
async function build(
  inlineConfig?: InlineConfig
): Promise<RollupOutput | RollupOutput[]>

Пример использования:

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

Тип подписи:

ts
async function preview(inlineConfig?: InlineConfig): Promise<PreviewServer>

Пример использования:

js
import { preview } from 'vite'
;(async () => {
  const previewServer = await preview({
    // any valid user config options, plus `mode` and `configFile`
    preview: {
      port: 8080,
      open: true
    }
  })

  previewServer.printUrls()
})()

resolveConfig

Тип подписи:

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

Значение command равно serve в dev (в cli vite, vite dev и vite serve являются псевдонимами).

mergeConfig

Тип подписи:

ts
function mergeConfig(
  defaults: Record<string, any>,
  overrides: Record<string, any>,
  isRoot = true
): Record<string, any>

Глубоко объедините две конфигурации Vite. isRoot представляет уровень в конфигурации Vite, который объединяется. Например, установите false, если вы объединяете две опции build.

searchForWorkspaceRoot

Тип подписи:

ts
function searchForWorkspaceRoot(
  current: string,
  root = searchForPackageRoot(current)
): string

Связанное: server.fs.allow

Найдите корень потенциального рабочего пространства, если он соответствует следующим условиям, в противном случае он вернется к root:

  • содержит поле workspaces в package.json
  • содержит один из следующих файлов
    • lerna.json
    • pnpm-workspace.yaml

loadEnv

Тип подписи:

ts
function loadEnv(
  mode: string,
  envDir: string,
  prefixes: string | string[] = 'VITE_'
): Record<string, string>

Связанное: Файлы .env

Загрузите файлы .env в envDir. По умолчанию загружаются только переменные env с префиксом VITE_, если prefixes не изменены.

normalizePath

Тип подписи:

ts
function normalizePath(id: string): string

Связанное: Нормализация пути

Нормализует путь взаимодействия между плагинами Vite.

mergeConfig

Тип подписи:

ts
function mergeConfig(
  defaults: Record<string, any>,
  overrides: Record<string, any>,
  isRoot = true
): Record<string, any>

Глубоко объедините две конфигурации Vite. isRoot представляет уровень в конфигурации Vite, который объединяется. Например, установите false, если вы объединяете две опции build.

searchForWorkspaceRoot

Тип подписи:

ts
function searchForWorkspaceRoot(
  current: string,
  root = searchForPackageRoot(current)
): string

Связанное: server.fs.allow

Найдите корень потенциального рабочего пространства, если он соответствует следующим условиям, в противном случае он вернется к root:

  • содержит поле workspaces в package.json
  • содержит один из следующих файлов
    • lerna.json
    • pnpm-workspace.yaml

loadEnv

Тип подписи:

ts
function loadEnv(
  mode: string,
  envDir: string,
  prefixes: string | string[] = 'VITE_'
): Record<string, string>

Связанное: Файлы .env

Загрузите файлы .env в envDir. По умолчанию загружаются только переменные env с префиксом VITE_, если prefixes не изменены.

normalizePath

Тип подписи:

ts
function normalizePath(id: string): string

Связанное: Нормализация пути

Нормализует путь взаимодействия между плагинами Vite.

transformWithEsbuild

Тип подписи:

ts
async function transformWithEsbuild(
  code: string,
  filename: string,
  options?: EsbuildTransformOptions,
  inMap?: object
): Promise<ESBuildTransformResult>

Преобразуйте JavaScript или TypeScript с помощью esbuild. Полезно для плагинов, которые предпочитают соответствие внутреннему преобразованию esbuild Vite.

loadConfigFromFile

Тип подписи:

ts
async function loadConfigFromFile(
  configEnv: ConfigEnv,
  configFile?: string,
  configRoot: string = process.cwd(),
  logLevel?: LogLevel
): Promise<{
  path: string
  config: UserConfig
  dependencies: string[]
} | null>

Загрузите файл конфигурации Vite вручную с помощью esbuild.

Выпущено под лицензией MIT. (dev)