iles
Version:
Vite & Vue powered static site generator with partial hydration
55 lines (52 loc) • 1.51 kB
JavaScript
import {
renderPages
} from "./chunk-CZGVVTOI.js";
import {
createSitemap
} from "./chunk-DZLLJML6.js";
import {
writePages
} from "./chunk-KBWDZC2X.js";
import {
bundle
} from "./chunk-ETIIOXMW.js";
import {
bundleIslands
} from "./chunk-YHWL6QBB.js";
import {
rm,
withSpinner
} from "./chunk-PUZAE3UL.js";
import {
resolveConfig
} from "./chunk-T4WFAR6L.js";
// src/node/build/build.ts
async function build(root) {
const start = Date.now();
process.env.NODE_ENV = "production";
const appConfig = await resolveConfig(root, { command: "build", mode: "production", isSsrBuild: false });
rm(appConfig.outDir);
const bundleResult = await withSpinner(
"building client + server bundles",
async () => await bundle(appConfig)
);
const islandsByPath = /* @__PURE__ */ Object.create(null);
const pagesResult = await renderPages(appConfig, islandsByPath, bundleResult);
await createSitemap(appConfig, pagesResult.routesToRender);
await withSpinner(
"building islands bundle",
async () => await bundleIslands(appConfig, islandsByPath)
);
const ssgContext = { config: appConfig, pages: pagesResult.routesToRender };
await appConfig.ssg.onSiteBundled?.(ssgContext);
await withSpinner(
"writing pages",
async () => await writePages(appConfig, islandsByPath, pagesResult)
);
await appConfig.ssg.onSiteRendered?.(ssgContext);
rm(appConfig.tempDir);
console.info(`build complete in ${((Date.now() - start) / 1e3).toFixed(2)}s.`);
}
export {
build
};