Home / Function/ rolldownDepPlugin() — vite Function Reference

rolldownDepPlugin() — vite Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  9d9d1d96_da01_acb8_5086_7a043722cf91["rolldownDepPlugin()"]
  88c474dd_3ef0_0479_2549_43cd02a6f84b["rolldownDepPlugin.ts"]
  9d9d1d96_da01_acb8_5086_7a043722cf91 -->|defined in| 88c474dd_3ef0_0479_2549_43cd02a6f84b
  d2c87886_e4f7_0918_f1c5_5ddd6c5e08e8["createRolldownDepPluginTransform()"]
  d2c87886_e4f7_0918_f1c5_5ddd6c5e08e8 -->|calls| 9d9d1d96_da01_acb8_5086_7a043722cf91
  27cb44a2_ca79_d2a4_e536_a5e4bc22ffbf["prepareRolldownOptimizerRun()"]
  27cb44a2_ca79_d2a4_e536_a5e4bc22ffbf -->|calls| 9d9d1d96_da01_acb8_5086_7a043722cf91
  7ee86c21_2650_c869_2f5d_720909757e00["createBackCompatIdResolver()"]
  9d9d1d96_da01_acb8_5086_7a043722cf91 -->|calls| 7ee86c21_2650_c869_2f5d_720909757e00
  5d2580c9_3b65_7396_afe1_ab2aa13f8ed9["isBuiltin()"]
  9d9d1d96_da01_acb8_5086_7a043722cf91 -->|calls| 5d2580c9_3b65_7396_afe1_ab2aa13f8ed9
  23257aa1_5e3f_7e6e_1b43_875b139e4ec5["isExternalUrl()"]
  9d9d1d96_da01_acb8_5086_7a043722cf91 -->|calls| 23257aa1_5e3f_7e6e_1b43_875b139e4ec5
  1cc52ea9_1097_389c_806c_c1207629afcc["flattenId()"]
  9d9d1d96_da01_acb8_5086_7a043722cf91 -->|calls| 1cc52ea9_1097_389c_806c_c1207629afcc
  caf7895c_0586_261e_92ef_542af0901ea3["name()"]
  9d9d1d96_da01_acb8_5086_7a043722cf91 -->|calls| caf7895c_0586_261e_92ef_542af0901ea3
  ae8703ad_85e4_a4b4_5a15_57955bb1f6ce["isCSSRequest()"]
  9d9d1d96_da01_acb8_5086_7a043722cf91 -->|calls| ae8703ad_85e4_a4b4_5a15_57955bb1f6ce
  10e7daed_8b83_8119_ca52_eddfd906f7d4["isModuleCSSRequest()"]
  9d9d1d96_da01_acb8_5086_7a043722cf91 -->|calls| 10e7daed_8b83_8119_ca52_eddfd906f7d4
  26e0aa25_abdb_a755_dedb_61e78323162d["moduleListContains()"]
  9d9d1d96_da01_acb8_5086_7a043722cf91 -->|calls| 26e0aa25_abdb_a755_dedb_61e78323162d
  298b86d6_4810_9884_d5fa_3e3077e2206a["isDataUrl()"]
  9d9d1d96_da01_acb8_5086_7a043722cf91 -->|calls| 298b86d6_4810_9884_d5fa_3e3077e2206a
  a4adb1a7_cf54_091f_eb63_8217e684a8e1["normalizePath()"]
  9d9d1d96_da01_acb8_5086_7a043722cf91 -->|calls| a4adb1a7_cf54_091f_eb63_8217e684a8e1
  style 9d9d1d96_da01_acb8_5086_7a043722cf91 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/optimizer/rolldownDepPlugin.ts lines 61–363

export function rolldownDepPlugin(
  environment: Environment,
  qualified: Record<string, string>,
  external: string[],
): RolldownPlugin[] {
  const { isProduction } = environment.config
  const { extensions } = environment.config.optimizeDeps

  // remove optimizable extensions from `externalTypes` list
  const allExternalTypes = extensions
    ? externalTypes.filter((type) => !extensions.includes('.' + type))
    : externalTypes

  // use separate package cache for optimizer as it caches paths around node_modules
  // and it's unlikely for the core Vite process to traverse into node_modules again
  const esmPackageCache: PackageCache = new Map()
  const cjsPackageCache: PackageCache = new Map()

  // default resolver which prefers ESM
  const _resolve = createBackCompatIdResolver(environment.getTopLevelConfig(), {
    asSrc: false,
    scan: true,
    packageCache: esmPackageCache,
  })

  // cjs resolver that prefers Node
  const _resolveRequire = createBackCompatIdResolver(
    environment.getTopLevelConfig(),
    {
      asSrc: false,
      isRequire: true,
      scan: true,
      packageCache: cjsPackageCache,
    },
  )

  const resolve = (
    id: string,
    importer: string | undefined,
    kind: ImportKind,
  ): Promise<string | undefined> => {
    // map importer ids to file paths for correct resolution
    const _importer =
      importer && importer in qualified ? qualified[importer] : importer
    const resolver = kind.startsWith('require') ? _resolveRequire : _resolve
    return resolver(environment, id, _importer)
  }

  const resolveResult = (id: string, resolved: string) => {
    if (resolved.startsWith(browserExternalId)) {
      return {
        id: browserExternalNamespace + id,
      }
    }
    if (resolved.startsWith(optionalPeerDepId)) {
      return {
        id: optionalPeerDepNamespace + resolved,
      }
    }
    if (isBuiltin(environment.config.resolve.builtins, resolved)) {
      return
    }
    if (isExternalUrl(resolved)) {
      return {
        id: resolved,
        external: 'absolute',
      }
    }
    return {
      id: path.resolve(resolved),
    }
  }

  const allExternalTypesReg = new RegExp(
    `\\.(` + allExternalTypes.join('|') + `)(\\?.*)?$`,
  )

  function resolveEntry(id: string) {
    const flatId = flattenId(id)
    if (flatId in qualified) {
      return {

Subdomains

Frequently Asked Questions

What does rolldownDepPlugin() do?
rolldownDepPlugin() is a function in the vite codebase, defined in packages/vite/src/node/optimizer/rolldownDepPlugin.ts.
Where is rolldownDepPlugin() defined?
rolldownDepPlugin() is defined in packages/vite/src/node/optimizer/rolldownDepPlugin.ts at line 61.
What does rolldownDepPlugin() call?
rolldownDepPlugin() calls 10 function(s): createBackCompatIdResolver, flattenId, isBuiltin, isCSSRequest, isDataUrl, isExternalUrl, isModuleCSSRequest, moduleListContains, and 2 more.
What calls rolldownDepPlugin()?
rolldownDepPlugin() is called by 2 function(s): createRolldownDepPluginTransform, prepareRolldownOptimizerRun.

Analyze Your Own Codebase

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

Try Supermodel Free