mirror of
https://github.com/Rushilwiz/spaceout.git
synced 2025-04-22 12:29:50 -04:00
55 lines
1.8 KiB
JavaScript
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;
|