@nuxt/cli-edge
Version:
107 lines (103 loc) • 3.15 kB
JavaScript
/*!
* @nuxt/cli-edge v2.18.2-28661769.e265ef3 (c) 2016-2024
* Released under the MIT License
* Repository: https://github.com/nuxt/nuxt.js
* Website: https://nuxtjs.org
*/
;
const consola = require('consola');
const utilsEdge = require('@nuxt/utils-edge');
const index = require('./cli-index.js');
require('@nuxt/config-edge');
require('path');
require('exit');
require('chalk');
require('std-env');
require('wrap-ansi');
require('boxen');
require('minimist');
require('hookable');
require('defu');
require('semver');
require('fs');
require('execa');
const build = {
name: "build",
description: "Compiles the application for production deployment",
usage: "build <dir>",
options: {
...index.common,
...index.locking,
analyze: {
alias: "a",
type: "boolean",
description: "Launch webpack-bundle-analyzer to optimize your bundles",
prepare(cmd, options, argv) {
options.build = options.build || {};
if (argv.analyze && typeof options.build.analyze !== "object") {
options.build.analyze = true;
}
}
},
devtools: {
type: "boolean",
default: false,
description: "Enable Vue devtools",
prepare(cmd, options, argv) {
options.vue = options.vue || {};
options.vue.config = options.vue.config || {};
if (argv.devtools) {
options.vue.config.devtools = true;
}
}
},
generate: {
type: "boolean",
default: true,
description: "Don't generate static version for SPA mode (useful for nuxt start)"
},
quiet: {
alias: "q",
type: "boolean",
description: "Disable output except for errors",
prepare(cmd, options, argv) {
options.build = options.build || {};
if (argv.quiet) {
options.build.quiet = Boolean(argv.quiet);
}
}
},
standalone: {
type: "boolean",
default: false,
description: "Bundle all server dependencies (useful for nuxt-start)",
prepare(cmd, options, argv) {
if (argv.standalone) {
options.build.standalone = true;
}
}
}
},
async run(cmd) {
const config = await cmd.getNuxtConfig({ dev: false, server: false, _build: true });
config.server = (config.mode === utilsEdge.MODES.spa || config.ssr === false) && cmd.argv.generate !== false;
const nuxt = await cmd.getNuxt(config);
if (cmd.argv.lock) {
await cmd.setLock(await index.createLock({
id: "build",
dir: nuxt.options.buildDir,
root: config.rootDir
}));
}
if (nuxt.options.mode === utilsEdge.MODES.spa && nuxt.options.target === utilsEdge.TARGETS.server && cmd.argv.generate !== false) {
const generator = await cmd.getGenerator(nuxt);
await generator.generate({ build: true });
} else {
const builder = await cmd.getBuilder(nuxt);
await builder.build();
const nextCommand = nuxt.options.target === utilsEdge.TARGETS.static ? "nuxt generate" : "nuxt start";
consola.info("Ready to run `" + nextCommand + "`");
}
}
};
exports.default = build;