85 lines
No EOL
2.7 KiB
JavaScript
85 lines
No EOL
2.7 KiB
JavaScript
import { a as legacyRootDirArgs, i as extendsArgs, n as dotEnvArgs, o as logLevelArgs, r as envNameArgs, t as cwdArgs } from "./_shared-BCYCnX0T.mjs";
|
|
import { n as logger } from "./logger-B4ge7MhP.mjs";
|
|
import { t as overrideEnv } from "./env-DV8TWRZt.mjs";
|
|
import { t as loadKit } from "./kit-B3S8uoS_.mjs";
|
|
import "./versions-Bly87QYZ.mjs";
|
|
import { n as showVersions } from "./banner-DMgRAl0q.mjs";
|
|
import { t as clearBuildDir } from "./fs-CQH7NJn6.mjs";
|
|
import process from "node:process";
|
|
import { defineCommand } from "citty";
|
|
import { colors } from "consola/utils";
|
|
import { intro, outro } from "@clack/prompts";
|
|
import { relative, resolve } from "pathe";
|
|
|
|
//#region ../nuxi/src/commands/build.ts
|
|
var build_default = defineCommand({
|
|
meta: {
|
|
name: "build",
|
|
description: "Build Nuxt for production deployment"
|
|
},
|
|
args: {
|
|
...cwdArgs,
|
|
...logLevelArgs,
|
|
prerender: {
|
|
type: "boolean",
|
|
description: "Build Nuxt and prerender static routes"
|
|
},
|
|
preset: {
|
|
type: "string",
|
|
description: "Nitro server preset"
|
|
},
|
|
...dotEnvArgs,
|
|
...envNameArgs,
|
|
...extendsArgs,
|
|
...legacyRootDirArgs
|
|
},
|
|
async run(ctx) {
|
|
overrideEnv("production");
|
|
const cwd = resolve(ctx.args.cwd || ctx.args.rootDir);
|
|
intro(colors.cyan("Building Nuxt for production..."));
|
|
const kit = await loadKit(cwd);
|
|
await showVersions(cwd, kit);
|
|
const nuxt = await kit.loadNuxt({
|
|
cwd,
|
|
dotenv: {
|
|
cwd,
|
|
fileName: ctx.args.dotenv
|
|
},
|
|
envName: ctx.args.envName,
|
|
overrides: {
|
|
logLevel: ctx.args.logLevel,
|
|
_generate: ctx.args.prerender,
|
|
nitro: {
|
|
static: ctx.args.prerender,
|
|
preset: ctx.args.preset || process.env.NITRO_PRESET || process.env.SERVER_PRESET
|
|
},
|
|
...ctx.args.extends && { extends: ctx.args.extends },
|
|
...ctx.data?.overrides
|
|
}
|
|
});
|
|
let nitro;
|
|
try {
|
|
nitro = kit.useNitro?.();
|
|
if (nitro) logger.info(`Nitro preset: ${colors.cyan(nitro.options.preset)}`);
|
|
} catch {}
|
|
await clearBuildDir(nuxt.options.buildDir);
|
|
await kit.writeTypes(nuxt);
|
|
nuxt.hook("build:error", (err) => {
|
|
logger.error(`Nuxt build error: ${err}`);
|
|
process.exit(1);
|
|
});
|
|
await kit.buildNuxt(nuxt);
|
|
if (ctx.args.prerender) {
|
|
if (!nuxt.options.ssr) {
|
|
logger.warn(`HTML content not prerendered because ${colors.cyan("ssr: false")} was set.`);
|
|
logger.info(`You can read more in ${colors.cyan("https://nuxt.com/docs/getting-started/deployment#static-hosting")}.`);
|
|
}
|
|
const dir = nitro?.options.output.publicDir;
|
|
const publicDir = dir ? relative(process.cwd(), dir) : ".output/public";
|
|
outro(`✨ You can now deploy ${colors.cyan(publicDir)} to any static hosting!`);
|
|
} else outro("✨ Build complete!");
|
|
}
|
|
});
|
|
|
|
//#endregion
|
|
export { build_default as default }; |