Home / File/ optimizedDeps.ts — vite Source File

optimizedDeps.ts — vite Source File

Architecture documentation for optimizedDeps.ts, a typescript file in the vite codebase. 14 imports, 2 dependents.

File typescript PluginSystem AssetManagement 14 imports 2 dependents 4 functions

Entity Profile

Dependency Diagram

graph LR
  1ad5c135_fc65_cc8f_2918_6f109d7fd644["optimizedDeps.ts"]
  5abb8c87_ffcb_f2d4_7421_e36705d9e5c7["plugin.ts"]
  1ad5c135_fc65_cc8f_2918_6f109d7fd644 --> 5abb8c87_ffcb_f2d4_7421_e36705d9e5c7
  1dc2cf7d_5d97_c778_8c33_6449a7607aef["Plugin"]
  1ad5c135_fc65_cc8f_2918_6f109d7fd644 --> 1dc2cf7d_5d97_c778_8c33_6449a7607aef
  545df65b_7f67_94d3_e2e8_a592d5e64b8f["constants.ts"]
  1ad5c135_fc65_cc8f_2918_6f109d7fd644 --> 545df65b_7f67_94d3_e2e8_a592d5e64b8f
  031bc221_67a8_c579_f2bf_bb30a08beeb2["utils.ts"]
  1ad5c135_fc65_cc8f_2918_6f109d7fd644 --> 031bc221_67a8_c579_f2bf_bb30a08beeb2
  23a2e685_f919_9578_27ba_bde71c122058["createDebugger"]
  1ad5c135_fc65_cc8f_2918_6f109d7fd644 --> 23a2e685_f919_9578_27ba_bde71c122058
  2f328851_91ee_fb05_63f0_4f466b9d6250["index.ts"]
  1ad5c135_fc65_cc8f_2918_6f109d7fd644 --> 2f328851_91ee_fb05_63f0_4f466b9d6250
  cf8cccc0_fa2a_e8ac_480a_47c54435825c["isDepOptimizationDisabled"]
  1ad5c135_fc65_cc8f_2918_6f109d7fd644 --> cf8cccc0_fa2a_e8ac_480a_47c54435825c
  0e7dedc8_f980_705d_9b47_79e0785d8853["optimizedDepInfoFromFile"]
  1ad5c135_fc65_cc8f_2918_6f109d7fd644 --> 0e7dedc8_f980_705d_9b47_79e0785d8853
  abfc9e70_3c15_b3f0_a595_3cf27afb7e64["utils.ts"]
  1ad5c135_fc65_cc8f_2918_6f109d7fd644 --> abfc9e70_3c15_b3f0_a595_3cf27afb7e64
  10b9dea8_362c_1af2_93be_afa4dd9aed9e["cleanUrl"]
  1ad5c135_fc65_cc8f_2918_6f109d7fd644 --> 10b9dea8_362c_1af2_93be_afa4dd9aed9e
  ffe942a0_fdea_ef58_0f68_6f1fec25f285["constants.ts"]
  1ad5c135_fc65_cc8f_2918_6f109d7fd644 --> ffe942a0_fdea_ef58_0f68_6f1fec25f285
  a09ff191_7c83_bdcd_30f1_b4e129910bf6["promises"]
  1ad5c135_fc65_cc8f_2918_6f109d7fd644 --> a09ff191_7c83_bdcd_30f1_b4e129910bf6
  bff4f846_ab01_b5ba_74d4_c1608e434d2c["picocolors"]
  1ad5c135_fc65_cc8f_2918_6f109d7fd644 --> bff4f846_ab01_b5ba_74d4_c1608e434d2c
  2616bf8c_8895_7af5_fb6e_8424b9e71ea7[".."]
  1ad5c135_fc65_cc8f_2918_6f109d7fd644 --> 2616bf8c_8895_7af5_fb6e_8424b9e71ea7
  style 1ad5c135_fc65_cc8f_2918_6f109d7fd644 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import fsp from 'node:fs/promises'
import colors from 'picocolors'
import type { DevEnvironment } from '..'
import type { Plugin } from '../plugin'
import {
  DEP_VERSION_RE,
  ERR_FILE_NOT_FOUND_IN_OPTIMIZED_DEP_DIR,
  ERR_OPTIMIZE_DEPS_PROCESSING_ERROR,
} from '../constants'
import { createDebugger } from '../utils'
import {
  isDepOptimizationDisabled,
  optimizedDepInfoFromFile,
} from '../optimizer'
import { cleanUrl } from '../../shared/utils'
import { ERR_OUTDATED_OPTIMIZED_DEP } from '../../shared/constants'

const debug = createDebugger('vite:optimize-deps')

export function optimizedDepsPlugin(): Plugin {
  return {
    name: 'vite:optimized-deps',

    applyToEnvironment(environment) {
      return !isDepOptimizationDisabled(environment.config.optimizeDeps)
    },

    resolveId(id) {
      const environment = this.environment as DevEnvironment
      if (environment.depsOptimizer?.isOptimizedDepFile(id)) {
        return id
      }
    },

    // this.load({ id }) isn't implemented in PluginContainer
    // The logic to register an id to wait until it is processed
    // is in importAnalysis, see call to delayDepsOptimizerUntil

    async load(id) {
      const environment = this.environment as DevEnvironment
      const depsOptimizer = environment.depsOptimizer
      if (depsOptimizer?.isOptimizedDepFile(id)) {
        const metadata = depsOptimizer.metadata
        const file = cleanUrl(id)
        const versionMatch = DEP_VERSION_RE.exec(id)
        const browserHash = versionMatch
          ? versionMatch[1].split('=')[1]
          : undefined

        // Search in both the currently optimized and newly discovered deps
        const info = optimizedDepInfoFromFile(metadata, file)
        if (info) {
          if (
            browserHash &&
            info.browserHash !== browserHash &&
            !environment.config.optimizeDeps.ignoreOutdatedRequests
          ) {
            throwOutdatedRequest(id)
          }
          try {
// ... (74 more lines)

Domain

Subdomains

Frequently Asked Questions

What does optimizedDeps.ts do?
optimizedDeps.ts is a source file in the vite codebase, written in typescript. It belongs to the PluginSystem domain, AssetManagement subdomain.
What functions are defined in optimizedDeps.ts?
optimizedDeps.ts defines 4 function(s): optimizedDepsPlugin, throwFileNotFoundInOptimizedDep, throwOutdatedRequest, throwProcessingError.
What does optimizedDeps.ts depend on?
optimizedDeps.ts imports 14 module(s): .., Plugin, cleanUrl, constants.ts, constants.ts, createDebugger, index.ts, isDepOptimizationDisabled, and 6 more.
What files import optimizedDeps.ts?
optimizedDeps.ts is imported by 2 file(s): importAnalysis.ts, index.ts.
Where is optimizedDeps.ts in the architecture?
optimizedDeps.ts is located at packages/vite/src/node/plugins/optimizedDeps.ts (domain: PluginSystem, subdomain: AssetManagement, directory: packages/vite/src/node/plugins).

Analyze Your Own Codebase

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

Try Supermodel Free