diff --git a/Dockerfile b/Dockerfile index 78eecb6..f2fa26f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ COPY package.json package-lock.json ./ RUN npm ci COPY . . -RUN npm run build:legacy +RUN npm run build FROM nginx:1.27-alpine AS runtime diff --git a/package.json b/package.json index f172b81..965a6aa 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,8 @@ "dev:poetry": "npm run dev --prefix sites/poetry", "dev:reviews": "npm run dev --prefix sites/reviews", "dev:art": "npm run dev --prefix sites/art", - "build": "npm run build:sites", - "build:sites": "for site in research vibes puzzles reflections poetry reviews art; do npm run build --prefix sites/$site; done", + "build": "node scripts/build-site-packages.mjs", + "build:sites": "node scripts/build-site-packages.mjs", "build:legacy": "node scripts/build-all-sites.mjs", "preview": "npm run preview --prefix sites/research", "astro": "astro", diff --git a/scripts/build-site-packages.mjs b/scripts/build-site-packages.mjs new file mode 100644 index 0000000..cb37461 --- /dev/null +++ b/scripts/build-site-packages.mjs @@ -0,0 +1,34 @@ +import { cpSync, mkdirSync, rmSync } from "node:fs"; +import { join } from "node:path"; +import { spawnSync } from "node:child_process"; + +const sites = [ + "research", + "vibes", + "puzzles", + "reflections", + "poetry", + "reviews", + "art", +]; + +const rootDist = "dist"; + +rmSync(rootDist, { force: true, recursive: true }); +mkdirSync(rootDist, { recursive: true }); + +for (const site of sites) { + console.log(`\nBuilding ${site} -> ${rootDist}/${site}`); + + const result = spawnSync("npm", ["run", "build", "--prefix", `sites/${site}`], { + stdio: "inherit", + }); + + if (result.status !== 0) { + process.exit(result.status ?? 1); + } + + cpSync(join("sites", site, "dist"), join(rootDist, site), { + recursive: true, + }); +}