build() — astro Function Reference
Architecture documentation for the build() function in build.mjs from the astro codebase.
Entity Profile
Dependency Diagram
graph TD b2d9a8c1_a75c_864a_f967_2d5749a761a5["build()"] ff2c719f_fe27_09a3_da3d_e2e373d9ff80["build.mjs"] b2d9a8c1_a75c_864a_f967_2d5749a761a5 -->|defined in| ff2c719f_fe27_09a3_da3d_e2e373d9ff80 style b2d9a8c1_a75c_864a_f967_2d5749a761a5 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/language-tools/vscode/scripts/build.mjs lines 10–75
export default async function build() {
const isDev = process.argv.includes('--watch');
const metaFile = process.argv.includes('--metafile');
/**
* @satisfies {import('esbuild').BuildOptions}
*/
const config = {
entryPoints: {
'dist/node/client': './src/client.ts',
'dist/node/server': './node_modules/@astrojs/language-server/bin/nodeServer.js',
'dist/astro-ts-plugin-bundle/index': './node_modules/@astrojs/ts-plugin/dist/index.js',
},
bundle: true,
metafile: metaFile,
sourcemap: isDev,
outdir: '.',
external: ['vscode', '@astrojs/compiler', 'prettier', 'prettier-plugin-astro'],
format: 'cjs',
platform: 'node',
tsconfig: './tsconfig.json',
define: { 'process.env.NODE_ENV': '"production"' },
minify: process.argv.includes('--minify'),
plugins: [
copy({
resolveFrom: 'cwd',
assets: {
from: ['../language-server/types/**/*.d.ts'],
to: ['./dist/types'],
watch: isDev,
},
}),
{
name: 'umd2esm',
setup(pluginBuild) {
pluginBuild.onResolve(
{ filter: /^(vscode-.*-languageservice|jsonc-parser)/ },
(buildArgs) => {
const pathUmdMay = require.resolve(buildArgs.path, { paths: [buildArgs.resolveDir] });
// Call twice the replace is to solve the problem of the path in Windows
const pathEsm = pathUmdMay.replace('/umd/', '/esm/').replace('\\umd\\', '\\esm\\');
return { path: pathEsm };
},
);
},
},
],
};
if (!isDev) {
const result = await esbuild.build(config);
if (metaFile) fs.writeFileSync('meta.json', JSON.stringify(result.metafile));
return;
}
const builder = await esbuild.context({
...config,
plugins: [rebuildPlugin, ...(config.plugins ?? [])],
});
await builder.watch();
process.on('beforeExit', () => {
builder.dispose && builder.dispose();
});
}
Domain
Subdomains
Source
Frequently Asked Questions
What does build() do?
build() is a function in the astro codebase, defined in packages/language-tools/vscode/scripts/build.mjs.
Where is build() defined?
build() is defined in packages/language-tools/vscode/scripts/build.mjs at line 10.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free