build.js — astro Source File
Architecture documentation for build.js, a javascript file in the astro codebase. 6 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 35c0b351_a315_b75b_aa2a_7f7a823ba60f["build.js"] 94d4ebd1_5989_8457_de40_0682a9174dd4["prebuild.js"] 35c0b351_a315_b75b_aa2a_7f7a823ba60f --> 94d4ebd1_5989_8457_de40_0682a9174dd4 399fe77d_1916_cbd4_3f65_b4a804530add["prebuild"] 35c0b351_a315_b75b_aa2a_7f7a823ba60f --> 399fe77d_1916_cbd4_3f65_b4a804530add 5d6d1861_a18d_b246_cd94_08889ab7e74c["promises"] 35c0b351_a315_b75b_aa2a_7f7a823ba60f --> 5d6d1861_a18d_b246_cd94_08889ab7e74c 972c6fe0_4a8d_d55e_c1b0_a57c5bf4ed60["esbuild"] 35c0b351_a315_b75b_aa2a_7f7a823ba60f --> 972c6fe0_4a8d_d55e_c1b0_a57c5bf4ed60 10250468_0e83_bd69_43e9_3bcef2294a91["piccolore"] 35c0b351_a315_b75b_aa2a_7f7a823ba60f --> 10250468_0e83_bd69_43e9_3bcef2294a91 e64464d4_88a4_c7e2_f90f_758b06231bbe["tinyglobby"] 35c0b351_a315_b75b_aa2a_7f7a823ba60f --> e64464d4_88a4_c7e2_f90f_758b06231bbe style 35c0b351_a315_b75b_aa2a_7f7a823ba60f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import fs from 'node:fs/promises';
import esbuild from 'esbuild';
import colors from 'piccolore';
import { glob } from 'tinyglobby';
import prebuild from './prebuild.js';
/** @type {import('esbuild').BuildOptions} */
const defaultConfig = {
minify: false,
format: 'esm',
platform: 'node',
// TODO: update once Stackblitz supports Node 22
target: 'node20',
sourcemap: false,
sourcesContent: false,
};
const dt = new Intl.DateTimeFormat('en-us', {
hour: '2-digit',
minute: '2-digit',
});
function getPrebuilds(isDev, args) {
let prebuilds = [];
while (args.includes('--prebuild')) {
let idx = args.indexOf('--prebuild');
prebuilds.push(args[idx + 1]);
args.splice(idx, 2);
}
if (prebuilds.length && isDev) {
prebuilds.unshift('--no-minify');
}
return prebuilds;
}
export default async function build(...args) {
const config = Object.assign({}, defaultConfig);
const isDev = args.slice(-1)[0] === 'IS_DEV';
const prebuilds = getPrebuilds(isDev, args);
const patterns = args
.filter((f) => !!f) // remove empty args
.filter((f) => !f.startsWith('--')) // remove flags
.map((f) => f.replace(/^'/, '').replace(/'$/, '')); // Needed for Windows: glob strings contain surrounding string chars??? remove these
let entryPoints = [].concat(
...(await Promise.all(
patterns.map((pattern) =>
glob(pattern, { filesOnly: true, expandDirectories: false, absolute: true }),
),
)),
);
const noClean = args.includes('--no-clean-dist');
const cleanDts = args.includes('--clean-dts');
const bundle = args.includes('--bundle');
const forceCJS = args.includes('--force-cjs');
const { type = 'module', dependencies = {} } = await readPackageJSON('./package.json');
config.define = {};
for (const [key, value] of await getDefinedEntries()) {
// ... (119 more lines)
Domain
Subdomains
Functions
Dependencies
- esbuild
- piccolore
- prebuild
- prebuild.js
- promises
- tinyglobby
Source
Frequently Asked Questions
What does build.js do?
build.js is a source file in the astro codebase, written in javascript. It belongs to the CoreAstro domain, RoutingSystem subdomain.
What functions are defined in build.js?
build.js defines 7 function(s): build, clean, getDefinedEntries, getInternalPackageVersion, getPrebuilds, getWorkspacePackageVersion, readPackageJSON.
What does build.js depend on?
build.js imports 6 module(s): esbuild, piccolore, prebuild, prebuild.js, promises, tinyglobby.
Where is build.js in the architecture?
build.js is located at scripts/cmd/build.js (domain: CoreAstro, subdomain: RoutingSystem, directory: scripts/cmd).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free