Home / Function/ loadCachedDepOptimizationMetadata() — vite Function Reference

loadCachedDepOptimizationMetadata() — vite Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  8f966b1b_ebbe_17e4_e14f_b8888709480c["loadCachedDepOptimizationMetadata()"]
  2f328851_91ee_fb05_63f0_4f466b9d6250["index.ts"]
  8f966b1b_ebbe_17e4_e14f_b8888709480c -->|defined in| 2f328851_91ee_fb05_63f0_4f466b9d6250
  d04f1f71_b435_f5c3_dc33_d847fd576eaf["optimizeDeps()"]
  d04f1f71_b435_f5c3_dc33_d847fd576eaf -->|calls| 8f966b1b_ebbe_17e4_e14f_b8888709480c
  9810a1ae_08e1_202d_3fb0_3cc8b579cb87["optimizeExplicitEnvironmentDeps()"]
  9810a1ae_08e1_202d_3fb0_3cc8b579cb87 -->|calls| 8f966b1b_ebbe_17e4_e14f_b8888709480c
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b["createDepsOptimizer()"]
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b -->|calls| 8f966b1b_ebbe_17e4_e14f_b8888709480c
  fdffa8ac_eb91_9c13_167c_dc593734ee66["cleanupDepsCacheStaleDirs()"]
  8f966b1b_ebbe_17e4_e14f_b8888709480c -->|calls| fdffa8ac_eb91_9c13_167c_dc593734ee66
  178d0f68_5aa9_9f89_6fb4_a6b2acfb2c07["getDepsCacheDir()"]
  8f966b1b_ebbe_17e4_e14f_b8888709480c -->|calls| 178d0f68_5aa9_9f89_6fb4_a6b2acfb2c07
  5f546dad_7489_c77b_99f6_5017e8e85235["parseDepsOptimizerMetadata()"]
  8f966b1b_ebbe_17e4_e14f_b8888709480c -->|calls| 5f546dad_7489_c77b_99f6_5017e8e85235
  4b382358_e92d_2c3c_8d21_bc94472fd5da["getLockfileHash()"]
  8f966b1b_ebbe_17e4_e14f_b8888709480c -->|calls| 4b382358_e92d_2c3c_8d21_bc94472fd5da
  1dbbbf51_ca8e_49d4_c344_d524f4a56cec["getConfigHash()"]
  8f966b1b_ebbe_17e4_e14f_b8888709480c -->|calls| 1dbbbf51_ca8e_49d4_c344_d524f4a56cec
  style 8f966b1b_ebbe_17e4_e14f_b8888709480c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/optimizer/index.ts lines 382–445

export async function loadCachedDepOptimizationMetadata(
  environment: Environment,
  force: boolean = environment.config.optimizeDeps.force ?? false,
  asCommand = false,
): Promise<DepOptimizationMetadata | undefined> {
  const log = asCommand ? environment.logger.info : debug

  if (firstLoadCachedDepOptimizationMetadata) {
    firstLoadCachedDepOptimizationMetadata = false
    // Fire up a clean up of stale processing deps dirs if older process exited early
    setTimeout(
      () => cleanupDepsCacheStaleDirs(environment.getTopLevelConfig()),
      0,
    ).unref()
  }

  const depsCacheDir = getDepsCacheDir(environment)

  if (!force) {
    let cachedMetadata: DepOptimizationMetadata | undefined
    try {
      const cachedMetadataPath = path.join(depsCacheDir, METADATA_FILENAME)
      cachedMetadata = parseDepsOptimizerMetadata(
        await fsp.readFile(cachedMetadataPath, 'utf-8'),
        depsCacheDir,
      )
    } catch {}
    // hash is consistent, no need to re-bundle
    if (cachedMetadata) {
      if (cachedMetadata.lockfileHash !== getLockfileHash(environment)) {
        environment.logger.info(
          'Re-optimizing dependencies because lockfile has changed',
          {
            timestamp: true,
          },
        )
      } else if (cachedMetadata.configHash !== getConfigHash(environment)) {
        environment.logger.info(
          'Re-optimizing dependencies because vite config has changed',
          {
            timestamp: true,
          },
        )
      } else {
        log?.(
          `(${environment.name}) Hash is consistent. Skipping. Use --force to override.`,
        )
        // Nothing to commit or cancel as we are using the cache, we only
        // need to resolve the processing promise so requests can move on
        return cachedMetadata
      }
    }
  } else {
    environment.logger.info('Forced re-optimization of dependencies', {
      timestamp: true,
    })
  }

  // Start with a fresh cache
  debug?.(
    `(${environment.name}) ${colors.green(`removing old cache dir ${depsCacheDir}`)}`,
  )
  await fsp.rm(depsCacheDir, { recursive: true, force: true })
}

Subdomains

Frequently Asked Questions

What does loadCachedDepOptimizationMetadata() do?
loadCachedDepOptimizationMetadata() is a function in the vite codebase, defined in packages/vite/src/node/optimizer/index.ts.
Where is loadCachedDepOptimizationMetadata() defined?
loadCachedDepOptimizationMetadata() is defined in packages/vite/src/node/optimizer/index.ts at line 382.
What does loadCachedDepOptimizationMetadata() call?
loadCachedDepOptimizationMetadata() calls 5 function(s): cleanupDepsCacheStaleDirs, getConfigHash, getDepsCacheDir, getLockfileHash, parseDepsOptimizerMetadata.
What calls loadCachedDepOptimizationMetadata()?
loadCachedDepOptimizationMetadata() is called by 3 function(s): createDepsOptimizer, optimizeDeps, optimizeExplicitEnvironmentDeps.

Analyze Your Own Codebase

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

Try Supermodel Free