rakkasjs
Version:
Bleeding-edge React framework powered by Vite
71 lines (69 loc) • 1.79 kB
JavaScript
import {
doPrerender
} from "./chunk-XEZ2E4P7.js";
import {
cleanOptions
} from "./chunk-FC2WGIJU.js";
import {
version
} from "./chunk-NPN2JRYM.js";
// src/cli/build.ts
import multibuild from "@vavite/multibuild";
import pico from "picocolors";
async function build(root, options) {
const buildOptions = cleanOptions(options);
let config;
let total;
let viteSteps;
let paths;
let adapter;
function logStep(index, name) {
config.logger.info(
"\n" + pico.magenta("rakkas") + ": " + name + " (" + pico.green(`${index}/${total}`) + ")"
);
}
process.env.NODE_ENV = options.mode || "production";
await multibuild(
{
root,
base: options.base,
mode: options.mode,
configFile: options.config,
logLevel: options.logLevel,
clearScreen: options.clearScreen,
build: buildOptions
},
{
onInitialConfigResolved(resolvedConfig) {
config = resolvedConfig;
config.logger.info(
pico.black(pico.bgMagenta(" RAKKAS ")) + " " + pico.magenta(version) + " \u{1F483}"
);
total = viteSteps = config.buildSteps?.length || 1;
paths = config.api?.rakkas?.prerender || [];
if (paths.length) {
total += 1;
}
adapter = config.api?.rakkas?.adapter;
if (adapter.bundle) {
total += 1;
}
},
onStartBuildStep(info) {
logStep(info.currentStepIndex + 1, "Building " + info.currentStep.name);
}
}
);
let step = viteSteps + 1;
if (paths.length) {
logStep(step++, "Prerendering static routes");
await doPrerender(config, void 0, true);
}
if (adapter.bundle) {
logStep(step++, `Adapting for ${adapter.name}`);
await adapter.bundle(config.root);
}
}
export {
build
};