Home / Function/ createDepsOptimizer() — vite Function Reference

createDepsOptimizer() — vite Function Reference

Architecture documentation for the createDepsOptimizer() function in optimizer.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b["createDepsOptimizer()"]
  1e9c451c_672c_39cf_7b97_f46e41e7b47d["optimizer.ts"]
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b -->|defined in| 1e9c451c_672c_39cf_7b97_f46e41e7b47d
  54f1d371_b3ac_a02d_d56e_00234dedc459["initDepsOptimizerMetadata()"]
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b -->|calls| 54f1d371_b3ac_a02d_d56e_00234dedc459
  0292cdda_4b03_d38d_11d6_b4b287d5f619["createIsOptimizedDepFile()"]
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b -->|calls| 0292cdda_4b03_d38d_11d6_b4b287d5f619
  287d6c40_e13a_3c71_8d45_c949a2448ad8["createIsOptimizedDepUrl()"]
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b -->|calls| 287d6c40_e13a_3c71_8d45_c949a2448ad8
  2622794a_5478_b8b2_f904_da8e5ad26abf["depsLogString()"]
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b -->|calls| 2622794a_5478_b8b2_f904_da8e5ad26abf
  2a568e89_e3e7_9284_fd00_e1a9ca1ec09a["close()"]
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b -->|calls| 2a568e89_e3e7_9284_fd00_e1a9ca1ec09a
  8f966b1b_ebbe_17e4_e14f_b8888709480c["loadCachedDepOptimizationMetadata()"]
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b -->|calls| 8f966b1b_ebbe_17e4_e14f_b8888709480c
  1c26b345_9001_5539_856a_e1c755036eaa["addManuallyIncludedOptimizeDeps()"]
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b -->|calls| 1c26b345_9001_5539_856a_e1c755036eaa
  9b7b17a5_d5ad_52e2_bb45_a7dd0edefa69["toDiscoveredDependencies()"]
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b -->|calls| 9b7b17a5_d5ad_52e2_bb45_a7dd0edefa69
  7402f434_a1bf_d32f_d9fd_fd11f7538168["addOptimizedDepInfo()"]
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b -->|calls| 7402f434_a1bf_d32f_d9fd_fd11f7538168
  b6ef989d_5a20_eb85_097b_a92459d6c1e0["waitForRequestsIdle()"]
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b -->|calls| b6ef989d_5a20_eb85_097b_a92459d6c1e0
  1864cf91_94f2_c4d1_81e0_d6a82d65cb0e["Promise()"]
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b -->|calls| 1864cf91_94f2_c4d1_81e0_d6a82d65cb0e
  fca4ce05_45e4_28a5_7b84_fc3f5cbc24bb["discoverProjectDependencies()"]
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b -->|calls| fca4ce05_45e4_28a5_7b84_fc3f5cbc24bb
  f6cc5896_6a10_2069_d844_d1c6914e9d05["devToScanEnvironment()"]
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b -->|calls| f6cc5896_6a10_2069_d844_d1c6914e9d05
  style d40c38f0_b6c1_b93f_a735_b3f1e17bea5b fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/optimizer/optimizer.ts lines 40–746

export function createDepsOptimizer(
  environment: DevEnvironment,
): DepsOptimizer {
  const { logger } = environment
  const sessionTimestamp = Date.now().toString()

  let debounceProcessingHandle: NodeJS.Timeout | undefined

  let closed = false

  const options = environment.config.optimizeDeps

  const { noDiscovery, holdUntilCrawlEnd } = options

  let metadata: DepOptimizationMetadata = initDepsOptimizerMetadata(
    environment,
    sessionTimestamp,
  )

  const depsOptimizer: DepsOptimizer = {
    init,
    metadata,
    registerMissingImport,
    run: () => debouncedProcessing(0),
    isOptimizedDepFile: createIsOptimizedDepFile(environment),
    isOptimizedDepUrl: createIsOptimizedDepUrl(environment),
    getOptimizedDepId: (depInfo: OptimizedDepInfo) =>
      `${depInfo.file}?v=${depInfo.browserHash}`,
    close,
    options,
  }

  let newDepsDiscovered = false

  let newDepsToLog: string[] = []
  let newDepsToLogHandle: NodeJS.Timeout | undefined
  const logNewlyDiscoveredDeps = () => {
    if (newDepsToLog.length) {
      logger.info(
        colors.green(
          `✨ new dependencies optimized: ${depsLogString(newDepsToLog)}`,
        ),
        {
          timestamp: true,
        },
      )
      newDepsToLog = []
    }
  }

  let discoveredDepsWhileScanning: string[] = []
  const logDiscoveredDepsWhileScanning = () => {
    if (discoveredDepsWhileScanning.length) {
      logger.info(
        colors.green(
          `✨ discovered while scanning: ${depsLogString(
            discoveredDepsWhileScanning,
          )}`,
        ),
        {
          timestamp: true,
        },
      )
      discoveredDepsWhileScanning = []
    }
  }

  let depOptimizationProcessing = promiseWithResolvers<void>()
  let depOptimizationProcessingQueue: PromiseWithResolvers<void>[] = []
  const resolveEnqueuedProcessingPromises = () => {
    // Resolve all the processings (including the ones which were delayed)
    for (const processing of depOptimizationProcessingQueue) {
      processing.resolve()
    }
    depOptimizationProcessingQueue = []
  }

  let enqueuedRerun: (() => void) | undefined
  let currentlyProcessing = false

  let firstRunCalled = false

Subdomains

Frequently Asked Questions

What does createDepsOptimizer() do?
createDepsOptimizer() is a function in the vite codebase, defined in packages/vite/src/node/optimizer/optimizer.ts.
Where is createDepsOptimizer() defined?
createDepsOptimizer() is defined in packages/vite/src/node/optimizer/optimizer.ts at line 40.
What does createDepsOptimizer() call?
createDepsOptimizer() calls 21 function(s): Promise, addManuallyIncludedOptimizeDeps, addOptimizedDepInfo, close, createIsOptimizedDepFile, createIsOptimizedDepUrl, depsFromOptimizedDepInfo, depsLogString, and 13 more.

Analyze Your Own Codebase

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

Try Supermodel Free