getViteResolveAlias() — astro Function Reference
Architecture documentation for the getViteResolveAlias() function in index.ts from the astro codebase.
Entity Profile
Dependency Diagram
graph TD 73ef4717_0679_8c7f_84fd_7676c8eeb9af["getViteResolveAlias()"] 7996ca89_cb81_c0ba_4ce2_f1ad1a93890c["index.ts"] 73ef4717_0679_8c7f_84fd_7676c8eeb9af -->|defined in| 7996ca89_cb81_c0ba_4ce2_f1ad1a93890c 41c9f435_8602_aa44_336c_21df75b6be30["configAliasVitePlugin()"] 41c9f435_8602_aa44_336c_21df75b6be30 -->|calls| 73ef4717_0679_8c7f_84fd_7676c8eeb9af style 73ef4717_0679_8c7f_84fd_7676c8eeb9af fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/astro/src/vite-plugin-config-alias/index.ts lines 71–114
const getViteResolveAlias = (settings: AstroSettings) => {
const { tsConfig, tsConfigPath } = settings;
if (!tsConfig || !tsConfigPath || !tsConfig.compilerOptions) return [];
const { baseUrl, paths } = tsConfig.compilerOptions as CompilerOptions;
const effectiveBaseUrl = baseUrl ?? (paths ? '.' : undefined);
if (!effectiveBaseUrl) return [];
const resolvedBaseUrl = path.resolve(path.dirname(tsConfigPath), effectiveBaseUrl);
const aliases: Array<{ find: string | RegExp; replacement: string; customResolver?: any }> = [];
// Build aliases with custom resolver that tries multiple paths
if (paths) {
for (const [aliasPattern, values] of Object.entries(paths)) {
const resolvedValues = values.map((v) => path.resolve(resolvedBaseUrl, v));
const customResolver = (id: string) => {
// Try each path in order
// id is already the wildcard part (e.g., 'extra.css' for '@styles/*')
// resolvedValues still have the * in them, so replace * with id
for (const resolvedValue of resolvedValues) {
const resolved = resolvedValue.replace('*', id);
const stats = fs.statSync(resolved, { throwIfNoEntry: false });
if (stats && stats.isFile()) {
return normalizePath(resolved);
}
}
return null;
};
aliases.push({
// Build regex from alias pattern (e.g., '@styles/*' -> /^@styles\/(.+)$/)
// First, escape special regex chars. Then replace * with a capture group (.+)
find: new RegExp(
`^${aliasPattern.replace(/[\\^$+?.()|[\]{}]/g, '\\$&').replace(/\*/g, '(.+)')}$`,
),
replacement: aliasPattern.includes('*') ? '$1' : aliasPattern,
customResolver,
});
}
}
return aliases;
};
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does getViteResolveAlias() do?
getViteResolveAlias() is a function in the astro codebase, defined in packages/astro/src/vite-plugin-config-alias/index.ts.
Where is getViteResolveAlias() defined?
getViteResolveAlias() is defined in packages/astro/src/vite-plugin-config-alias/index.ts at line 71.
What calls getViteResolveAlias()?
getViteResolveAlias() is called by 1 function(s): configAliasVitePlugin.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free