Home / File/ build.js — astro Source File

build.js — astro Source File

Architecture documentation for build.js, a javascript file in the astro codebase. 6 imports, 0 dependents.

File javascript CoreAstro RoutingSystem 6 imports 7 functions

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

Dependencies

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