vike
Version:
The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.
69 lines (68 loc) • 1.95 kB
JavaScript
import './assertEnvCli.js';
import { dev, build, preview } from '../api/index.js';
import pc from '@brillout/picocolors';
import { parseCli } from './parseCli.js';
import { setContextCliCommand } from './context.js';
cli();
async function cli() {
const { command, cliOptions } = parseCli();
setContextCliCommand(command, cliOptions);
if (command === 'dev') {
await cmdDev();
}
else if (command === 'build') {
await cmdBuild();
}
else if (command === 'preview') {
await cmdPreview();
}
else if (command === 'prerender') {
await cmdPrerender();
}
}
async function cmdDev() {
try {
await dev({ startupLog: true });
}
catch (err) {
console.error(pc.red(`Error while starting dev server:`));
// Error comes from Vite; no need to use addErrorHint()
console.error(err);
process.exit(1);
}
}
async function cmdBuild() {
try {
await build();
}
catch (err) {
console.error(pc.red(`Error during build:`));
// Error comes from Vite; no need to use addErrorHint()
console.error(err);
process.exit(1);
}
// See comments at runPrerender_forceExit()
process.exit(0);
}
async function cmdPreview() {
try {
const { viteServer } = await preview();
if (viteServer) {
viteServer.printUrls();
viteServer.bindCLIShortcuts({ print: true });
}
}
catch (err) {
console.error(pc.red(`Error while starting preview server:`));
// Error comes from Vite; no need to use addErrorHint()
console.error(err);
process.exit(1);
}
}
async function cmdPrerender() {
const { runPrerenderFromCLIPrerenderCommand } = await import('../prerender/runPrerenderEntry.js');
await runPrerenderFromCLIPrerenderCommand();
}
process.on('unhandledRejection', (rejectValue) => {
throw rejectValue;
});