Home / Function/ _createServer() — vite Function Reference

_createServer() — vite Function Reference

Architecture documentation for the _createServer() function in index.ts from the vite codebase.

Function typescript ViteCore ConfigEngine calls 67 called by 2

Entity Profile

Dependency Diagram

graph TD
  24ecf2a1_3c09_d451_76f3_9485b4e993f8["_createServer()"]
  a423a1ed_f7d8_0eb5_9b8f_ddfa7fa8147e["index.ts"]
  24ecf2a1_3c09_d451_76f3_9485b4e993f8 -->|defined in| a423a1ed_f7d8_0eb5_9b8f_ddfa7fa8147e
  19009191_26ac_2526_d048_41ac02638e55["createServer()"]
  19009191_26ac_2526_d048_41ac02638e55 -->|calls| 24ecf2a1_3c09_d451_76f3_9485b4e993f8
  e12a7f9f_5bba_d2ce_ea02_83d281750727["restartServer()"]
  e12a7f9f_5bba_d2ce_ea02_83d281750727 -->|calls| 24ecf2a1_3c09_d451_76f3_9485b4e993f8
  71005ca7_1085_a0f3_9a08_a7f6f56f6327["isResolvedConfig()"]
  24ecf2a1_3c09_d451_76f3_9485b4e993f8 -->|calls| 71005ca7_1085_a0f3_9a08_a7f6f56f6327
  58c4a210_68fe_1b4d_ed49_d59203f97ef1["resolveConfig()"]
  24ecf2a1_3c09_d451_76f3_9485b4e993f8 -->|calls| 58c4a210_68fe_1b4d_ed49_d59203f97ef1
  19d4a1e3_7ff5_51ec_2223_486cb0f131a4["add()"]
  24ecf2a1_3c09_d451_76f3_9485b4e993f8 -->|calls| 19d4a1e3_7ff5_51ec_2223_486cb0f131a4
  7bbc76cf_d6e4_72b6_ab8c_62f7798babf2["initPublicFiles()"]
  24ecf2a1_3c09_d451_76f3_9485b4e993f8 -->|calls| 7bbc76cf_d6e4_72b6_ab8c_62f7798babf2
  cb5a4344_4dd4_e836_a83e_593080e6a235["resolveHttpsConfig()"]
  24ecf2a1_3c09_d451_76f3_9485b4e993f8 -->|calls| cb5a4344_4dd4_e836_a83e_593080e6a235
  841e9f5e_2979_644d_f5ee_6e634536197c["getResolvedOutDirs()"]
  24ecf2a1_3c09_d451_76f3_9485b4e993f8 -->|calls| 841e9f5e_2979_644d_f5ee_6e634536197c
  dd84c207_766d_3923_500c_1abe3b21a31e["resolveEmptyOutDir()"]
  24ecf2a1_3c09_d451_76f3_9485b4e993f8 -->|calls| dd84c207_766d_3923_500c_1abe3b21a31e
  5c18d7ac_9113_a831_b6e2_bda4c7fd6ddd["resolveChokidarOptions()"]
  24ecf2a1_3c09_d451_76f3_9485b4e993f8 -->|calls| 5c18d7ac_9113_a831_b6e2_bda4c7fd6ddd
  e66d0fef_de7e_a1f4_2eb6_054a37395337["resolveHttpServer()"]
  24ecf2a1_3c09_d451_76f3_9485b4e993f8 -->|calls| e66d0fef_de7e_a1f4_2eb6_054a37395337
  ed427876_97cc_17d4_d5e4_ae67bba950e3["createWebSocketServer()"]
  24ecf2a1_3c09_d451_76f3_9485b4e993f8 -->|calls| ed427876_97cc_17d4_d5e4_ae67bba950e3
  0c12d8fd_e65d_655d_6d45_310c047bb1ce["setClientErrorHandler()"]
  24ecf2a1_3c09_d451_76f3_9485b4e993f8 -->|calls| 0c12d8fd_e65d_655d_6d45_310c047bb1ce
  style 24ecf2a1_3c09_d451_76f3_9485b4e993f8 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/server/index.ts lines 437–1038

export async function _createServer(
  inlineConfig: ResolvedConfig | InlineConfig | undefined = {},
  options: {
    listen: boolean
    previousEnvironments?: Record<string, DevEnvironment>
    previousShortcutsState?: ShortcutsState<ViteDevServer>
  },
): Promise<ViteDevServer> {
  const config = isResolvedConfig(inlineConfig)
    ? inlineConfig
    : await resolveConfig(inlineConfig, 'serve')

  if (usedConfigs.has(config)) {
    throw new Error(`There is already a server associated with the config.`)
  }

  if (config.command !== 'serve') {
    throw new Error(
      `Config was resolved for a "build", expected a "serve" command.`,
    )
  }

  usedConfigs.add(config)

  const initPublicFilesPromise = initPublicFiles(config)

  const { root, server: serverConfig } = config
  const httpsOptions = await resolveHttpsConfig(config.server.https)
  const { middlewareMode } = serverConfig

  const resolvedOutDirs = getResolvedOutDirs(
    config.root,
    config.build.outDir,
    config.build.rollupOptions.output,
  )
  const emptyOutDir = resolveEmptyOutDir(
    config.build.emptyOutDir,
    config.root,
    resolvedOutDirs,
  )
  const resolvedWatchOptions = resolveChokidarOptions(
    {
      disableGlobbing: true,
      ...serverConfig.watch,
    },
    resolvedOutDirs,
    emptyOutDir,
    config.cacheDir,
  )

  const middlewares = connect() as Connect.Server
  const httpServer = middlewareMode
    ? null
    : await resolveHttpServer(middlewares, httpsOptions)

  const ws = createWebSocketServer(httpServer, config, httpsOptions)

  const publicFiles = await initPublicFilesPromise
  const { publicDir } = config

  if (httpServer) {
    setClientErrorHandler(httpServer, config.logger)
  }

  // eslint-disable-next-line eqeqeq
  const watchEnabled = serverConfig.watch !== null
  const watcher = watchEnabled
    ? (chokidar.watch(
        // config file dependencies and env file might be outside of root
        [
          ...(config.experimental.bundledDev ? [] : [root]),
          ...config.configFileDependencies,
          ...getEnvFilesForMode(config.mode, config.envDir),
          // Watch the public directory explicitly because it might be outside
          // of the root directory.
          ...(publicDir && publicFiles ? [publicDir] : []),
        ],

        resolvedWatchOptions,
      ) as FSWatcher)
    : createNoopWatcher(resolvedWatchOptions)

Domain

Subdomains

Frequently Asked Questions

What does _createServer() do?
_createServer() is a function in the vite codebase, defined in packages/vite/src/node/server/index.ts.
Where is _createServer() defined?
_createServer() is defined in packages/vite/src/node/server/index.ts at line 437.
What does _createServer() call?
_createServer() calls 67 function(s): add, baseMiddleware, bindCLIShortcuts, buildStart, cachedTransformMiddleware, close, createDevHtmlTransformFn, createNoopWatcher, and 59 more.
What calls _createServer()?
_createServer() is called by 2 function(s): createServer, restartServer.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free