summaryrefslogtreecommitdiff
path: root/scripts/cmd/build.js
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@skypack.dev> 2022-06-16 09:54:09 -0400
committerGravatar GitHub <noreply@github.com> 2022-06-16 09:54:09 -0400
commit4916b733c2b8265ab46762bbbc85aa4171296515 (patch)
treefe21dbd12bf5dcc01223b68375ff8b56d4767c7b /scripts/cmd/build.js
parent816e9635095ca6914b281b137f1c0e98b1ea7b37 (diff)
downloadastro-4916b733c2b8265ab46762bbbc85aa4171296515.tar.gz
astro-4916b733c2b8265ab46762bbbc85aa4171296515.tar.zst
astro-4916b733c2b8265ab46762bbbc85aa4171296515.zip
Inline hydration directive scripts (#3605)
* Inline hydration scripts * Adds a changeset * Update directiveAstroKeys type
Diffstat (limited to 'scripts/cmd/build.js')
-rw-r--r--scripts/cmd/build.js18
1 files changed, 18 insertions, 0 deletions
diff --git a/scripts/cmd/build.js b/scripts/cmd/build.js
index b2d402890..a95a5b8e3 100644
--- a/scripts/cmd/build.js
+++ b/scripts/cmd/build.js
@@ -4,6 +4,7 @@ import del from 'del';
import { promises as fs } from 'fs';
import { dim, green, red, yellow } from 'kleur/colors';
import glob from 'tiny-glob';
+import prebuild from './prebuild.js';
/** @type {import('esbuild').BuildOptions} */
const defaultConfig = {
@@ -20,9 +21,23 @@ const dt = new Intl.DateTimeFormat('en-us', {
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
.map((f) => f.replace(/^'/, '').replace(/'$/, '')); // Needed for Windows: glob strings contain surrounding string chars??? remove these
@@ -59,6 +74,9 @@ export default async function build(...args) {
...config,
watch: {
onRebuild(error, result) {
+ if(prebuilds.length) {
+ prebuild(...prebuilds);
+ }
const date = dt.format(new Date());
if (error || (result && result.errors.length)) {
console.error(dim(`[${date}] `) + red(error || result.errors.join('\n')));