Home / Function/ buildEnvironment() — vite Function Reference

buildEnvironment() — vite Function Reference

Architecture documentation for the buildEnvironment() function in build.ts from the vite codebase.

Function typescript ViteCore ConfigEngine calls 14 called by 1

Entity Profile

Dependency Diagram

graph TD
  94ad7f99_b02e_152e_c5a9_749d6de8d3c0["buildEnvironment()"]
  45981d85_cbdd_e969_8c88_c17072ea0eda["build.ts"]
  94ad7f99_b02e_152e_c5a9_749d6de8d3c0 -->|defined in| 45981d85_cbdd_e969_8c88_c17072ea0eda
  8fb400c0_eabf_b57a_2905_d2afc7644da6["createBuilder()"]
  8fb400c0_eabf_b57a_2905_d2afc7644da6 -->|calls| 94ad7f99_b02e_152e_c5a9_749d6de8d3c0
  a016fb65_b1f4_be50_c5c3_d0c8f7b2ab52["resolveRolldownOptions()"]
  94ad7f99_b02e_152e_c5a9_749d6de8d3c0 -->|calls| a016fb65_b1f4_be50_c5c3_d0c8f7b2ab52
  841e9f5e_2979_644d_f5ee_6e634536197c["getResolvedOutDirs()"]
  94ad7f99_b02e_152e_c5a9_749d6de8d3c0 -->|calls| 841e9f5e_2979_644d_f5ee_6e634536197c
  dd84c207_766d_3923_500c_1abe3b21a31e["resolveEmptyOutDir()"]
  94ad7f99_b02e_152e_c5a9_749d6de8d3c0 -->|calls| dd84c207_766d_3923_500c_1abe3b21a31e
  5c18d7ac_9113_a831_b6e2_bda4c7fd6ddd["resolveChokidarOptions()"]
  94ad7f99_b02e_152e_c5a9_749d6de8d3c0 -->|calls| 5c18d7ac_9113_a831_b6e2_bda4c7fd6ddd
  d2c779ef_5a62_b85d_23f4_6937e2c9e0e6["convertToNotifyOptions()"]
  94ad7f99_b02e_152e_c5a9_749d6de8d3c0 -->|calls| d2c779ef_5a62_b85d_23f4_6937e2c9e0e6
  e2e6edbb_7f9c_497a_7e44_feef63f1b53f["clearResetChunks()"]
  94ad7f99_b02e_152e_c5a9_749d6de8d3c0 -->|calls| e2e6edbb_7f9c_497a_7e44_feef63f1b53f
  365dd1a8_292f_ae21_8f83_1ecfde441d37["enhanceRollupError()"]
  94ad7f99_b02e_152e_c5a9_749d6de8d3c0 -->|calls| 365dd1a8_292f_ae21_8f83_1ecfde441d37
  0ae44fcb_cb76_b322_98e1_3bb6cce3ebde["clearLine()"]
  94ad7f99_b02e_152e_c5a9_749d6de8d3c0 -->|calls| 0ae44fcb_cb76_b322_98e1_3bb6cce3ebde
  19ce2051_6a74_4b8b_104d_ec006cd7075f["arraify()"]
  94ad7f99_b02e_152e_c5a9_749d6de8d3c0 -->|calls| 19ce2051_6a74_4b8b_104d_ec006cd7075f
  cc503659_fea6_f7a4_0eca_f9b89ae2eb3a["injectChunkMetadata()"]
  94ad7f99_b02e_152e_c5a9_749d6de8d3c0 -->|calls| cc503659_fea6_f7a4_0eca_f9b89ae2eb3a
  2e315ff6_3308_1eee_6d6e_6eea63aebc22["displayTime()"]
  94ad7f99_b02e_152e_c5a9_749d6de8d3c0 -->|calls| 2e315ff6_3308_1eee_6d6e_6eea63aebc22
  7e22b0a1_210d_c2ca_9a20_17eec3acb06f["info()"]
  94ad7f99_b02e_152e_c5a9_749d6de8d3c0 -->|calls| 7e22b0a1_210d_c2ca_9a20_17eec3acb06f
  style 94ad7f99_b02e_152e_c5a9_749d6de8d3c0 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/build.ts lines 779–885

async function buildEnvironment(
  environment: BuildEnvironment,
): Promise<RolldownOutput | RolldownOutput[] | RolldownWatcher> {
  const { logger, config } = environment
  const { root, build: options } = config

  logger.info(
    colors.cyan(
      `vite v${VERSION} ${colors.green(
        `building ${environment.name} environment for ${environment.config.mode}...`,
      )}`,
    ),
  )

  let bundle: RolldownBuild | undefined
  let startTime: number | undefined
  try {
    const chunkMetadataMap = new ChunkMetadataMap()
    const rollupOptions = resolveRolldownOptions(environment, chunkMetadataMap)

    // watch file changes with rollup
    if (options.watch) {
      logger.info(colors.cyan(`\nwatching for file changes...`))

      const resolvedOutDirs = getResolvedOutDirs(
        root,
        options.outDir,
        options.rollupOptions.output,
      )
      const emptyOutDir = resolveEmptyOutDir(
        options.emptyOutDir,
        root,
        resolvedOutDirs,
        logger,
      )
      const resolvedChokidarOptions = resolveChokidarOptions(
        {
          // @ts-expect-error chokidar option does not exist in rolldown but used for backward compat
          ...(rollupOptions.watch || {}).chokidar,
          // @ts-expect-error chokidar option does not exist in rolldown but used for backward compat
          ...options.watch.chokidar,
        },
        resolvedOutDirs,
        emptyOutDir,
        environment.config.cacheDir,
      )

      const { watch } = await import('rolldown')
      const watcher = watch({
        ...rollupOptions,
        watch: {
          ...rollupOptions.watch,
          ...options.watch,
          notify: convertToNotifyOptions(resolvedChokidarOptions),
        },
      })

      watcher.on('event', (event) => {
        if (event.code === 'BUNDLE_START') {
          logger.info(colors.cyan(`\nbuild started...`))
          chunkMetadataMap.clearResetChunks()
        } else if (event.code === 'BUNDLE_END') {
          event.result.close()
          logger.info(colors.cyan(`built in ${event.duration}ms.`))
        } else if (event.code === 'ERROR') {
          const e = event.error
          enhanceRollupError(e)
          clearLine()
          logger.error(e.message, { error: e })
        }
      })

      return watcher
    }

    // write or generate files with rolldown
    const { rolldown } = await import('rolldown')
    startTime = Date.now()
    bundle = await rolldown(rollupOptions)

    const res: RolldownOutput[] = []

Domain

Subdomains

Called By

Frequently Asked Questions

What does buildEnvironment() do?
buildEnvironment() is a function in the vite codebase, defined in packages/vite/src/node/build.ts.
Where is buildEnvironment() defined?
buildEnvironment() is defined in packages/vite/src/node/build.ts at line 779.
What does buildEnvironment() call?
buildEnvironment() calls 14 function(s): arraify, clearLine, clearResetChunks, close, convertToNotifyOptions, displayTime, enhanceRollupError, error, and 6 more.
What calls buildEnvironment()?
buildEnvironment() is called by 1 function(s): createBuilder.

Analyze Your Own Codebase

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

Try Supermodel Free