build.mjs — astro Source File
Architecture documentation for build.mjs, a javascript file in the astro codebase. 5 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR ff2c719f_fe27_09a3_da3d_e2e373d9ff80["build.mjs"] 4d75c445_4391_c7d4_eae5_d220320b7783["shared.mjs"] ff2c719f_fe27_09a3_da3d_e2e373d9ff80 --> 4d75c445_4391_c7d4_eae5_d220320b7783 e16a223b_37f3_6b25_1ee1_2b7bcb9d9415["node:fs"] ff2c719f_fe27_09a3_da3d_e2e373d9ff80 --> e16a223b_37f3_6b25_1ee1_2b7bcb9d9415 3955a637_4c78_0528_fe7c_92190a232cb0["node:module"] ff2c719f_fe27_09a3_da3d_e2e373d9ff80 --> 3955a637_4c78_0528_fe7c_92190a232cb0 972c6fe0_4a8d_d55e_c1b0_a57c5bf4ed60["esbuild"] ff2c719f_fe27_09a3_da3d_e2e373d9ff80 --> 972c6fe0_4a8d_d55e_c1b0_a57c5bf4ed60 f9680f34_7ad8_e388_8a06_5fe8504aee61["esbuild-plugin-copy"] ff2c719f_fe27_09a3_da3d_e2e373d9ff80 --> f9680f34_7ad8_e388_8a06_5fe8504aee61 style ff2c719f_fe27_09a3_da3d_e2e373d9ff80 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
// @ts-check
import fs from 'node:fs';
import { createRequire } from 'node:module';
import esbuild from 'esbuild';
import { copy } from 'esbuild-plugin-copy';
import { rebuildPlugin } from './shared.mjs';
const require = createRequire(import.meta.url);
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();
});
}
build();
Domain
Subdomains
Functions
Dependencies
- esbuild
- esbuild-plugin-copy
- node:fs
- node:module
- shared.mjs
Source
Frequently Asked Questions
What does build.mjs do?
build.mjs is a source file in the astro codebase, written in javascript. It belongs to the CoreAstro domain, CoreMiddleware subdomain.
What functions are defined in build.mjs?
build.mjs defines 1 function(s): build.
What does build.mjs depend on?
build.mjs imports 5 module(s): esbuild, esbuild-plugin-copy, node:fs, node:module, shared.mjs.
Where is build.mjs in the architecture?
build.mjs is located at packages/language-tools/vscode/scripts/build.mjs (domain: CoreAstro, subdomain: CoreMiddleware, directory: packages/language-tools/vscode/scripts).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free