createIdResolver() — vite Function Reference
Architecture documentation for the createIdResolver() function in idResolver.ts from the vite codebase.
Entity Profile
Dependency Diagram
graph TD ad008126_fbbe_c1e5_bb1b_3d9b84539e52["createIdResolver()"] 55b2a3d2_8787_d760_1a76_1d2854a39807["idResolver.ts"] ad008126_fbbe_c1e5_bb1b_3d9b84539e52 -->|defined in| 55b2a3d2_8787_d760_1a76_1d2854a39807 58c4a210_68fe_1b4d_ed49_d59203f97ef1["resolveConfig()"] 58c4a210_68fe_1b4d_ed49_d59203f97ef1 -->|calls| ad008126_fbbe_c1e5_bb1b_3d9b84539e52 7ee86c21_2650_c869_2f5d_720909757e00["createBackCompatIdResolver()"] 7ee86c21_2650_c869_2f5d_720909757e00 -->|calls| ad008126_fbbe_c1e5_bb1b_3d9b84539e52 dfa2b928_25a4_a78f_1e11_1e7e643cae09["resolve()"] ad008126_fbbe_c1e5_bb1b_3d9b84539e52 -->|calls| dfa2b928_25a4_a78f_1e11_1e7e643cae09 1abc446c_e46b_1be0_59f5_51bdfded0f6c["createEnvironmentPluginContainer()"] ad008126_fbbe_c1e5_bb1b_3d9b84539e52 -->|calls| 1abc446c_e46b_1be0_59f5_51bdfded0f6c 0ac6860f_bc2f_9818_86d4_22179cc9c8ba["oxcResolvePlugin()"] ad008126_fbbe_c1e5_bb1b_3d9b84539e52 -->|calls| 0ac6860f_bc2f_9818_86d4_22179cc9c8ba acb05845_9984_6792_9aae_b58486b613b5["resolveId()"] ad008126_fbbe_c1e5_bb1b_3d9b84539e52 -->|calls| acb05845_9984_6792_9aae_b58486b613b5 style ad008126_fbbe_c1e5_bb1b_3d9b84539e52 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/vite/src/node/idResolver.ts lines 42–117
export function createIdResolver(
config: ResolvedConfig,
options?: Partial<InternalResolveOptions>,
): ResolveIdFn {
const scan = options?.scan
const pluginContainerMap = new Map<
PartialEnvironment,
EnvironmentPluginContainer
>()
async function resolve(
environment: PartialEnvironment,
id: string,
importer?: string,
): Promise<PartialResolvedId | null> {
let pluginContainer = pluginContainerMap.get(environment)
if (!pluginContainer) {
pluginContainer = await createEnvironmentPluginContainer(
environment as Environment,
[
// @ts-expect-error the aliasPlugin uses rollup types
aliasPlugin({ entries: environment.config.resolve.alias }),
...oxcResolvePlugin(
{
root: config.root,
isProduction: config.isProduction,
isBuild: config.command === 'build',
asSrc: true,
preferRelative: false,
tryIndex: true,
...options,
// Ignore sideEffects and other computations as we only need the id
idOnly: true,
},
environment.config,
),
],
undefined,
false,
)
pluginContainerMap.set(environment, pluginContainer)
}
return await pluginContainer.resolveId(id, importer, { scan })
}
const aliasOnlyPluginContainerMap = new Map<
PartialEnvironment,
EnvironmentPluginContainer
>()
async function resolveAlias(
environment: PartialEnvironment,
id: string,
importer?: string,
): Promise<PartialResolvedId | null> {
let pluginContainer = aliasOnlyPluginContainerMap.get(environment)
if (!pluginContainer) {
pluginContainer = await createEnvironmentPluginContainer(
environment as Environment,
// @ts-expect-error the aliasPlugin uses rollup types
[aliasPlugin({ entries: environment.config.resolve.alias })],
undefined,
false,
)
aliasOnlyPluginContainerMap.set(environment, pluginContainer)
}
return await pluginContainer.resolveId(id, importer, { scan })
}
return async (environment, id, importer, aliasOnly) => {
const resolveFn = aliasOnly ? resolveAlias : resolve
// aliasPlugin and resolvePlugin are implemented to function with a Environment only,
// we cast it as PluginEnvironment to be able to use the pluginContainer
const resolved = await resolveFn(environment, id, importer)
return resolved?.id
}
}
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does createIdResolver() do?
createIdResolver() is a function in the vite codebase, defined in packages/vite/src/node/idResolver.ts.
Where is createIdResolver() defined?
createIdResolver() is defined in packages/vite/src/node/idResolver.ts at line 42.
What does createIdResolver() call?
createIdResolver() calls 4 function(s): createEnvironmentPluginContainer, oxcResolvePlugin, resolve, resolveId.
What calls createIdResolver()?
createIdResolver() is called by 2 function(s): createBackCompatIdResolver, resolveConfig.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free