Home / Function/ preAliasPlugin() — vite Function Reference

preAliasPlugin() — vite Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  200356af_4305_31b8_b090_47f38784e182["preAliasPlugin()"]
  1ad4458e_b744_979c_c30e_c1021fdd26b7["preAlias.ts"]
  200356af_4305_31b8_b090_47f38784e182 -->|defined in| 1ad4458e_b744_979c_c30e_c1021fdd26b7
  b1b40b5b_3e43_2197_dea0_d36389d312a1["resolvePlugins()"]
  b1b40b5b_3e43_2197_dea0_d36389d312a1 -->|calls| 200356af_4305_31b8_b090_47f38784e182
  57415665_c9eb_2aaf_bde8_568754cae687["getAliasPatterns()"]
  200356af_4305_31b8_b090_47f38784e182 -->|calls| 57415665_c9eb_2aaf_bde8_568754cae687
  cf8cccc0_fa2a_e8ac_480a_47c54435825c["isDepOptimizationDisabled()"]
  200356af_4305_31b8_b090_47f38784e182 -->|calls| cf8cccc0_fa2a_e8ac_480a_47c54435825c
  9bace565_4b23_b1e6_8d82_883dae6cfae8["matches()"]
  200356af_4305_31b8_b090_47f38784e182 -->|calls| 9bace565_4b23_b1e6_8d82_883dae6cfae8
  a2e55a70_b7b6_bce2_e066_aea4c516313e["tryOptimizedResolve()"]
  200356af_4305_31b8_b090_47f38784e182 -->|calls| a2e55a70_b7b6_bce2_e066_aea4c516313e
  10b9dea8_362c_1af2_93be_afa4dd9aed9e["cleanUrl()"]
  200356af_4305_31b8_b090_47f38784e182 -->|calls| 10b9dea8_362c_1af2_93be_afa4dd9aed9e
  26e0aa25_abdb_a755_dedb_61e78323162d["moduleListContains()"]
  200356af_4305_31b8_b090_47f38784e182 -->|calls| 26e0aa25_abdb_a755_dedb_61e78323162d
  50ac7e51_9f94_e985_bfec_ae95273b23b0["isInNodeModules()"]
  200356af_4305_31b8_b090_47f38784e182 -->|calls| 50ac7e51_9f94_e985_bfec_ae95273b23b0
  908e9e35_950f_ad37_ffa9_0058622aa7e8["isOptimizable()"]
  200356af_4305_31b8_b090_47f38784e182 -->|calls| 908e9e35_950f_ad37_ffa9_0058622aa7e8
  0eb5ad90_ecd1_8056_eed4_0fc65836b26c["optimizeAliasReplacementForSSR()"]
  200356af_4305_31b8_b090_47f38784e182 -->|calls| 0eb5ad90_ecd1_8056_eed4_0fc65836b26c
  style 200356af_4305_31b8_b090_47f38784e182 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/plugins/preAlias.ts lines 24–85

export function preAliasPlugin(config: ResolvedConfig): Plugin {
  const findPatterns = getAliasPatterns(config.resolve.alias)
  return {
    name: 'vite:pre-alias',
    applyToEnvironment(environment) {
      return !isDepOptimizationDisabled(environment.config.optimizeDeps)
    },
    async resolveId(id, importer, options) {
      const environment = this.environment as DevEnvironment
      const ssr = environment.config.consumer === 'server'
      const depsOptimizer = environment.depsOptimizer
      if (
        importer &&
        depsOptimizer &&
        bareImportRE.test(id) &&
        !options.scan &&
        id !== '@vite/client' &&
        id !== '@vite/env'
      ) {
        if (findPatterns.find((pattern) => matches(pattern, id))) {
          const optimizedId = await tryOptimizedResolve(
            depsOptimizer,
            id,
            importer,
            config.resolve.preserveSymlinks,
            config.packageCache,
          )
          if (optimizedId) {
            return optimizedId // aliased dep already optimized
          }
          if (depsOptimizer.options.noDiscovery) {
            return
          }
          const resolved = await this.resolve(id, importer, options)
          if (resolved && !depsOptimizer.isOptimizedDepFile(resolved.id)) {
            const optimizeDeps = depsOptimizer.options
            const resolvedId = cleanUrl(resolved.id)
            const isVirtual = resolvedId === id || resolvedId.includes('\0')
            if (
              !isVirtual &&
              fs.existsSync(resolvedId) &&
              !moduleListContains(optimizeDeps.exclude, id) &&
              path.isAbsolute(resolvedId) &&
              (isInNodeModules(resolvedId) ||
                optimizeDeps.include?.includes(id)) &&
              isOptimizable(resolvedId, optimizeDeps) &&
              (!ssr || optimizeAliasReplacementForSSR(resolvedId, optimizeDeps))
            ) {
              // aliased dep has not yet been optimized
              const optimizedInfo = depsOptimizer!.registerMissingImport(
                id,
                resolvedId,
              )
              return { id: depsOptimizer!.getOptimizedDepId(optimizedInfo) }
            }
          }
          return resolved
        }
      }
    },
  }
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does preAliasPlugin() do?
preAliasPlugin() is a function in the vite codebase, defined in packages/vite/src/node/plugins/preAlias.ts.
Where is preAliasPlugin() defined?
preAliasPlugin() is defined in packages/vite/src/node/plugins/preAlias.ts at line 24.
What does preAliasPlugin() call?
preAliasPlugin() calls 9 function(s): cleanUrl, getAliasPatterns, isDepOptimizationDisabled, isInNodeModules, isOptimizable, matches, moduleListContains, optimizeAliasReplacementForSSR, and 1 more.
What calls preAliasPlugin()?
preAliasPlugin() is called by 1 function(s): resolvePlugins.

Analyze Your Own Codebase

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

Try Supermodel Free