preAlias.ts — vite Source File
Architecture documentation for preAlias.ts, a typescript file in the vite codebase. 16 imports, 2 dependents.
Entity Profile
Dependency Diagram
graph LR 1ad4458e_b744_979c_c30e_c1021fdd26b7["preAlias.ts"] 5abb8c87_ffcb_f2d4_7421_e36705d9e5c7["plugin.ts"] 1ad4458e_b744_979c_c30e_c1021fdd26b7 --> 5abb8c87_ffcb_f2d4_7421_e36705d9e5c7 1dc2cf7d_5d97_c778_8c33_6449a7607aef["Plugin"] 1ad4458e_b744_979c_c30e_c1021fdd26b7 --> 1dc2cf7d_5d97_c778_8c33_6449a7607aef 031bc221_67a8_c579_f2bf_bb30a08beeb2["utils.ts"] 1ad4458e_b744_979c_c30e_c1021fdd26b7 --> 031bc221_67a8_c579_f2bf_bb30a08beeb2 50ac7e51_9f94_e985_bfec_ae95273b23b0["isInNodeModules"] 1ad4458e_b744_979c_c30e_c1021fdd26b7 --> 50ac7e51_9f94_e985_bfec_ae95273b23b0 908e9e35_950f_ad37_ffa9_0058622aa7e8["isOptimizable"] 1ad4458e_b744_979c_c30e_c1021fdd26b7 --> 908e9e35_950f_ad37_ffa9_0058622aa7e8 26e0aa25_abdb_a755_dedb_61e78323162d["moduleListContains"] 1ad4458e_b744_979c_c30e_c1021fdd26b7 --> 26e0aa25_abdb_a755_dedb_61e78323162d abfc9e70_3c15_b3f0_a595_3cf27afb7e64["utils.ts"] 1ad4458e_b744_979c_c30e_c1021fdd26b7 --> abfc9e70_3c15_b3f0_a595_3cf27afb7e64 10b9dea8_362c_1af2_93be_afa4dd9aed9e["cleanUrl"] 1ad4458e_b744_979c_c30e_c1021fdd26b7 --> 10b9dea8_362c_1af2_93be_afa4dd9aed9e 1a3bec7b_1a11_316f_5831_a0535b829bbf["withTrailingSlash"] 1ad4458e_b744_979c_c30e_c1021fdd26b7 --> 1a3bec7b_1a11_316f_5831_a0535b829bbf 2f328851_91ee_fb05_63f0_4f466b9d6250["index.ts"] 1ad4458e_b744_979c_c30e_c1021fdd26b7 --> 2f328851_91ee_fb05_63f0_4f466b9d6250 cf8cccc0_fa2a_e8ac_480a_47c54435825c["isDepOptimizationDisabled"] 1ad4458e_b744_979c_c30e_c1021fdd26b7 --> cf8cccc0_fa2a_e8ac_480a_47c54435825c dcff87b0_a8ea_57a2_3b29_a7b8f19986f3["resolve.ts"] 1ad4458e_b744_979c_c30e_c1021fdd26b7 --> dcff87b0_a8ea_57a2_3b29_a7b8f19986f3 a2e55a70_b7b6_bce2_e066_aea4c516313e["tryOptimizedResolve"] 1ad4458e_b744_979c_c30e_c1021fdd26b7 --> a2e55a70_b7b6_bce2_e066_aea4c516313e 51e96894_3556_ed5c_1ede_97d449867adf["node:path"] 1ad4458e_b744_979c_c30e_c1021fdd26b7 --> 51e96894_3556_ed5c_1ede_97d449867adf style 1ad4458e_b744_979c_c30e_c1021fdd26b7 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import path from 'node:path'
import fs from 'node:fs'
import type {
Alias,
AliasOptions,
DepOptimizationOptions,
DevEnvironment,
ResolvedConfig,
} from '..'
import type { Plugin } from '../plugin'
import {
bareImportRE,
isInNodeModules,
isOptimizable,
moduleListContains,
} from '../utils'
import { cleanUrl, withTrailingSlash } from '../../shared/utils'
import { isDepOptimizationDisabled } from '../optimizer'
import { tryOptimizedResolve } from './resolve'
/**
* A plugin to avoid an aliased AND optimized dep from being aliased in src
*/
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)
// ... (73 more lines)
Domain
Subdomains
Functions
Dependencies
Source
Frequently Asked Questions
What does preAlias.ts do?
preAlias.ts is a source file in the vite codebase, written in typescript. It belongs to the PluginSystem domain, LegacySupport subdomain.
What functions are defined in preAlias.ts?
preAlias.ts defines 5 function(s): getAliasPatternMatcher, getAliasPatterns, matches, optimizeAliasReplacementForSSR, preAliasPlugin.
What does preAlias.ts depend on?
preAlias.ts imports 16 module(s): .., Plugin, cleanUrl, index.ts, isDepOptimizationDisabled, isInNodeModules, isOptimizable, moduleListContains, and 8 more.
What files import preAlias.ts?
preAlias.ts is imported by 2 file(s): importAnalysis.ts, index.ts.
Where is preAlias.ts in the architecture?
preAlias.ts is located at packages/vite/src/node/plugins/preAlias.ts (domain: PluginSystem, subdomain: LegacySupport, 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