compileAstro() — astro Function Reference
Architecture documentation for the compileAstro() function in compile.ts from the astro codebase.
Entity Profile
Dependency Diagram
graph TD 59d5ea7d_ccd5_fdc2_7a73_cc8ac4e8604a["compileAstro()"] a1b2a752_beb5_d4f4_ce1d_6f9443e365d3["compile.ts"] 59d5ea7d_ccd5_fdc2_7a73_cc8ac4e8604a -->|defined in| a1b2a752_beb5_d4f4_ce1d_6f9443e365d3 66e8c65c_f904_e726_dc60_4a26d3071e0d["enhanceCompileError()"] 59d5ea7d_ccd5_fdc2_7a73_cc8ac4e8604a -->|calls| 66e8c65c_f904_e726_dc60_4a26d3071e0d style 59d5ea7d_ccd5_fdc2_7a73_cc8ac4e8604a fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/astro/src/vite-plugin-astro/compile.ts lines 27–93
export async function compileAstro({
compileProps,
astroFileToCompileMetadata,
logger,
}: CompileAstroOption): Promise<CompileAstroResult> {
let transformResult: CompileResult;
let esbuildResult: ESBuildTransformResult;
try {
transformResult = await compile(compileProps);
// Compile all TypeScript to JavaScript.
// Also, catches invalid JS/TS in the compiled output before returning.
esbuildResult = await transformWithEsbuild(transformResult.code, compileProps.filename, {
...compileProps.viteConfig.esbuild,
loader: 'ts',
sourcemap: 'external',
tsconfigRaw: {
compilerOptions: {
// Ensure client:only imports are treeshaken
verbatimModuleSyntax: false,
importsNotUsedAsValues: 'remove',
},
},
});
} catch (err: any) {
await enhanceCompileError({
err,
id: compileProps.filename,
source: compileProps.source,
config: compileProps.astroConfig,
logger: logger,
});
throw err;
}
const { fileId: file, fileUrl: url } = getFileInfo(
compileProps.filename,
compileProps.astroConfig,
);
let SUFFIX = '';
SUFFIX += `\nconst $$file = ${JSON.stringify(file)};\nconst $$url = ${JSON.stringify(
url,
)};export { $$file as file, $$url as url };\n`;
// Add HMR handling in dev mode.
if (!compileProps.viteConfig.isProduction) {
let i = 0;
while (i < transformResult.scripts.length) {
SUFFIX += `import "${compileProps.filename}?astro&type=script&index=${i}&lang.ts";`;
i++;
}
}
// Attach compile metadata to map for use by virtual modules
astroFileToCompileMetadata.set(compileProps.filename, {
originalCode: compileProps.source,
css: transformResult.css,
scripts: transformResult.scripts,
});
return {
...transformResult,
code: esbuildResult.code + SUFFIX,
map: esbuildResult.map,
};
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does compileAstro() do?
compileAstro() is a function in the astro codebase, defined in packages/astro/src/vite-plugin-astro/compile.ts.
Where is compileAstro() defined?
compileAstro() is defined in packages/astro/src/vite-plugin-astro/compile.ts at line 27.
What does compileAstro() call?
compileAstro() calls 1 function(s): enhanceCompileError.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free