Home / Function/ resolveConfig() — vite Function Reference

resolveConfig() — vite Function Reference

Architecture documentation for the resolveConfig() function in config.ts from the vite codebase.

Function typescript ViteCore ConfigEngine calls 43 called by 11

Entity Profile

Dependency Diagram

graph TD
  58c4a210_68fe_1b4d_ed49_d59203f97ef1["resolveConfig()"]
  7da774f9_eca5_d54e_6e01_6bee7d460a2b["config.ts"]
  58c4a210_68fe_1b4d_ed49_d59203f97ef1 -->|defined in| 7da774f9_eca5_d54e_6e01_6bee7d460a2b
  edf612e5_7fcd_cfe5_cc15_2e8f0b2387e1["createIsExternal()"]
  edf612e5_7fcd_cfe5_cc15_2e8f0b2387e1 -->|calls| 58c4a210_68fe_1b4d_ed49_d59203f97ef1
  4bea0f1b_5f04_1db0_215b_2e5117aff16d["createAssetImportMetaurlPluginTransform()"]
  4bea0f1b_5f04_1db0_215b_2e5117aff16d -->|calls| 58c4a210_68fe_1b4d_ed49_d59203f97ef1
  5264d5e7_3105_8e4d_45a1_d7d3af9915a8["createCssPluginTransform()"]
  5264d5e7_3105_8e4d_45a1_d7d3af9915a8 -->|calls| 58c4a210_68fe_1b4d_ed49_d59203f97ef1
  85e82af4_ced1_f569_fa46_a75344872da0["createDefinePluginTransform()"]
  85e82af4_ced1_f569_fa46_a75344872da0 -->|calls| 58c4a210_68fe_1b4d_ed49_d59203f97ef1
  eda2b514_a922_d4f2_13bf_14e0c1711321["resolveConfigWithPlugin()"]
  eda2b514_a922_d4f2_13bf_14e0c1711321 -->|calls| 58c4a210_68fe_1b4d_ed49_d59203f97ef1
  7f71f89c_a2bd_87a9_0341_0f09d35da72f["createWorkerImportMetaUrlPluginTransform()"]
  7f71f89c_a2bd_87a9_0341_0f09d35da72f -->|calls| 58c4a210_68fe_1b4d_ed49_d59203f97ef1
  3dbc9dfb_0893_5792_6f30_598af5407825["resolveConfigToBuild()"]
  3dbc9dfb_0893_5792_6f30_598af5407825 -->|calls| 58c4a210_68fe_1b4d_ed49_d59203f97ef1
  5c50110b_5c76_c14f_b1dd_3efd3df7f375["preview()"]
  5c50110b_5c76_c14f_b1dd_3efd3df7f375 -->|calls| 58c4a210_68fe_1b4d_ed49_d59203f97ef1
  ee113a86_da26_172f_fe42_9dff7c10af7c["getDevEnvironment()"]
  ee113a86_da26_172f_fe42_9dff7c10af7c -->|calls| 58c4a210_68fe_1b4d_ed49_d59203f97ef1
  24ecf2a1_3c09_d451_76f3_9485b4e993f8["_createServer()"]
  24ecf2a1_3c09_d451_76f3_9485b4e993f8 -->|calls| 58c4a210_68fe_1b4d_ed49_d59203f97ef1
  585bf922_8932_bdb0_98d0_ee522538cb6d["runnerImport()"]
  585bf922_8932_bdb0_98d0_ee522538cb6d -->|calls| 58c4a210_68fe_1b4d_ed49_d59203f97ef1
  f56ee71e_4165_1d46_cf2e_e9dc68848891["setupRollupOptionCompat()"]
  58c4a210_68fe_1b4d_ed49_d59203f97ef1 -->|calls| f56ee71e_4165_1d46_cf2e_e9dc68848891
  53f0a505_9626_e709_c92b_e7f00c6e0bd7["loadConfigFromFile()"]
  58c4a210_68fe_1b4d_ed49_d59203f97ef1 -->|calls| 53f0a505_9626_e709_c92b_e7f00c6e0bd7
  style 58c4a210_68fe_1b4d_ed49_d59203f97ef1 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/config.ts lines 1370–2141

export async function resolveConfig(
  inlineConfig: InlineConfig,
  command: 'build' | 'serve',
  defaultMode = 'development',
  defaultNodeEnv = 'development',
  isPreview = false,
  /** @internal */
  patchConfig: ((config: ResolvedConfig) => void) | undefined = undefined,
  /** @internal */
  patchPlugins: ((resolvedPlugins: Plugin[]) => void) | undefined = undefined,
): Promise<ResolvedConfig> {
  let config = inlineConfig
  config.build ??= {}
  setupRollupOptionCompat(config.build, 'build')
  config.worker ??= {}
  setupRollupOptionCompat(config.worker, 'worker')
  config.optimizeDeps ??= {}
  setupRollupOptionCompat(config.optimizeDeps, 'optimizeDeps')
  if (config.ssr) {
    config.ssr.optimizeDeps ??= {}
    setupRollupOptionCompat(config.ssr.optimizeDeps, 'ssr.optimizeDeps')
  }

  let configFileDependencies: string[] = []
  let mode = inlineConfig.mode || defaultMode
  const isNodeEnvSet = !!process.env.NODE_ENV
  const packageCache: PackageCache = new Map()

  // some dependencies e.g. @vue/compiler-* relies on NODE_ENV for getting
  // production-specific behavior, so set it early on
  if (!isNodeEnvSet) {
    process.env.NODE_ENV = defaultNodeEnv
  }

  const configEnv: ConfigEnv = {
    mode,
    command,
    isSsrBuild: command === 'build' && !!config.build?.ssr,
    isPreview,
  }

  let { configFile } = config
  if (configFile !== false) {
    const loadResult = await loadConfigFromFile(
      configEnv,
      configFile,
      config.root,
      config.logLevel,
      config.customLogger,
      config.configLoader,
    )
    if (loadResult) {
      config = mergeConfig(loadResult.config, config)
      configFile = loadResult.path
      configFileDependencies = loadResult.dependencies
    }
  }

  // user config may provide an alternative mode. But --mode has a higher priority
  mode = inlineConfig.mode || config.mode || mode
  configEnv.mode = mode

  const filterPlugin = (p: Plugin | FalsyPlugin): p is Plugin => {
    if (!p) {
      return false
    } else if (!p.apply) {
      return true
    } else if (typeof p.apply === 'function') {
      return p.apply({ ...config, mode }, configEnv)
    } else {
      return p.apply === command
    }
  }

  // resolve plugins
  const rawPlugins = (await asyncFlatten(config.plugins || [])).filter(
    filterPlugin,
  )

  const [prePlugins, normalPlugins, postPlugins] = sortUserPlugins(rawPlugins)

Domain

Subdomains

Frequently Asked Questions

What does resolveConfig() do?
resolveConfig() is a function in the vite codebase, defined in packages/vite/src/node/config.ts.
Where is resolveConfig() defined?
resolveConfig() is defined in packages/vite/src/node/config.ts at line 1370.
What does resolveConfig() call?
resolveConfig() calls 43 function(s): applyDepOptimizationOptionCompat, arraify, asyncFlatten, checkBadCharactersInPath, config, convertEsbuildConfigToOxcConfig, createIdResolver, createLogger, and 35 more.
What calls resolveConfig()?
resolveConfig() is called by 11 function(s): _createServer, createAssetImportMetaurlPluginTransform, createCssPluginTransform, createDefinePluginTransform, createIsExternal, createWorkerImportMetaUrlPluginTransform, getDevEnvironment, preview, and 3 more.

Analyze Your Own Codebase

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

Try Supermodel Free