spaceout/site/frontend/node_modules/@webpack-cli/serve/lib/parseArgs.js

55 lines
1.8 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const webpack_cli_1 = require("webpack-cli");
const { logger } = webpack_cli_1.utils;
/**
*
* Parses raw dev server CLI args
*
* @param {Object} cli - webpack CLI object
* @param {Object[]} devServerFlags - devServer flags
* @param {String[]} args - unparsed devServer args processed from the CLI
*
* @returns {Object} parsed webpack args and dev server args objects
*/
function parseArgs(cli, args) {
let devServerFlags;
try {
// eslint-disable-next-line node/no-extraneous-require
devServerFlags = require('webpack-dev-server/bin/cli-flags').devServer;
}
catch (err) {
logger.error(`You need to install 'webpack-dev-server' for running 'webpack serve'.\n${err}`);
process.exit(2);
}
const core = cli.getCoreFlags();
const parsedDevServerArgs = cli.argParser(devServerFlags, args, true);
const devServerArgs = parsedDevServerArgs.opts;
const parsedWebpackArgs = cli.argParser(core, parsedDevServerArgs.unknownArgs, true, process.title);
const webpackArgs = parsedWebpackArgs.opts;
// Add WEBPACK_SERVE environment variable
if (webpackArgs.env) {
webpackArgs.env.WEBPACK_SERVE = true;
}
else {
webpackArgs.env = { WEBPACK_SERVE: true };
}
// pass along the 'hot' argument to the dev server if it exists
if (webpackArgs && webpackArgs.hot !== undefined) {
devServerArgs['hot'] = webpackArgs.hot;
}
if (parsedWebpackArgs.unknownArgs.length > 0) {
parsedWebpackArgs.unknownArgs
.filter((e) => e)
.forEach((unknown) => {
logger.error(`Unknown argument: ${unknown}`);
});
process.exit(2);
}
return {
devServerArgs,
webpackArgs,
};
}
exports.default = parseArgs;