Home / Function/ addManuallyIncludedOptimizeDeps() — vite Function Reference

addManuallyIncludedOptimizeDeps() — vite Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  1c26b345_9001_5539_856a_e1c755036eaa["addManuallyIncludedOptimizeDeps()"]
  2f328851_91ee_fb05_63f0_4f466b9d6250["index.ts"]
  1c26b345_9001_5539_856a_e1c755036eaa -->|defined in| 2f328851_91ee_fb05_63f0_4f466b9d6250
  d04f1f71_b435_f5c3_dc33_d847fd576eaf["optimizeDeps()"]
  d04f1f71_b435_f5c3_dc33_d847fd576eaf -->|calls| 1c26b345_9001_5539_856a_e1c755036eaa
  9810a1ae_08e1_202d_3fb0_3cc8b579cb87["optimizeExplicitEnvironmentDeps()"]
  9810a1ae_08e1_202d_3fb0_3cc8b579cb87 -->|calls| 1c26b345_9001_5539_856a_e1c755036eaa
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b["createDepsOptimizer()"]
  d40c38f0_b6c1_b93f_a735_b3f1e17bea5b -->|calls| 1c26b345_9001_5539_856a_e1c755036eaa
  0d9f6ef1_e83d_dc1d_d305_6a3df47149f2["expandGlobIds()"]
  1c26b345_9001_5539_856a_e1c755036eaa -->|calls| 0d9f6ef1_e83d_dc1d_d305_6a3df47149f2
  2ea76718_b753_0af8_eb97_a5f7ed505f1a["createOptimizeDepsIncludeResolver()"]
  1c26b345_9001_5539_856a_e1c755036eaa -->|calls| 2ea76718_b753_0af8_eb97_a5f7ed505f1a
  e56655cb_6a06_ed57_e671_30f0a2b54b82["normalizeId()"]
  1c26b345_9001_5539_856a_e1c755036eaa -->|calls| e56655cb_6a06_ed57_e671_30f0a2b54b82
  908e9e35_950f_ad37_ffa9_0058622aa7e8["isOptimizable()"]
  1c26b345_9001_5539_856a_e1c755036eaa -->|calls| 908e9e35_950f_ad37_ffa9_0058622aa7e8
  style 1c26b345_9001_5539_856a_e1c755036eaa fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/optimizer/index.ts lines 867–912

export async function addManuallyIncludedOptimizeDeps(
  environment: Environment,
  deps: Record<string, string>,
): Promise<void> {
  const { logger } = environment
  const { optimizeDeps } = environment.config
  const optimizeDepsInclude = optimizeDeps.include ?? []
  if (optimizeDepsInclude.length) {
    const unableToOptimize = (id: string, msg: string) => {
      if (optimizeDepsInclude.includes(id)) {
        logger.warn(
          `${msg}: ${colors.cyan(id)}, present in ${environment.name} 'optimizeDeps.include'`,
        )
      }
    }

    const includes = [...optimizeDepsInclude]
    for (let i = 0; i < includes.length; i++) {
      const id = includes[i]
      if (isDynamicPattern(id)) {
        const globIds = expandGlobIds(id, environment.getTopLevelConfig())
        includes.splice(i, 1, ...globIds)
        i += globIds.length - 1
      }
    }

    const resolve = createOptimizeDepsIncludeResolver(environment)
    for (const id of includes) {
      // normalize 'foo   >bar` as 'foo > bar' to prevent same id being added
      // and for pretty printing
      const normalizedId = normalizeId(id)
      if (!deps[normalizedId]) {
        const entry = await resolve(id)
        if (entry) {
          if (isOptimizable(entry, optimizeDeps)) {
            deps[normalizedId] = entry
          } else {
            unableToOptimize(id, 'Cannot optimize dependency')
          }
        } else {
          unableToOptimize(id, 'Failed to resolve dependency')
        }
      }
    }
  }
}

Subdomains

Frequently Asked Questions

What does addManuallyIncludedOptimizeDeps() do?
addManuallyIncludedOptimizeDeps() is a function in the vite codebase, defined in packages/vite/src/node/optimizer/index.ts.
Where is addManuallyIncludedOptimizeDeps() defined?
addManuallyIncludedOptimizeDeps() is defined in packages/vite/src/node/optimizer/index.ts at line 867.
What does addManuallyIncludedOptimizeDeps() call?
addManuallyIncludedOptimizeDeps() calls 4 function(s): createOptimizeDepsIncludeResolver, expandGlobIds, isOptimizable, normalizeId.
What calls addManuallyIncludedOptimizeDeps()?
addManuallyIncludedOptimizeDeps() 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