summaryrefslogtreecommitdiffstats
path: root/node_modules/webpack-cli/bin/config/config-yargs.js
diff options
context:
space:
mode:
authorGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
committerGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
commite06ec920f7a5d784e674c4c4b4e6d1da3dc7391d (patch)
tree55713f725f77b44ebfec86e4eec3ce33e71458ca /node_modules/webpack-cli/bin/config/config-yargs.js
downloadwebsite_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.gz
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.bz2
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.zip
api, login, auth
Diffstat (limited to 'node_modules/webpack-cli/bin/config/config-yargs.js')
-rw-r--r--node_modules/webpack-cli/bin/config/config-yargs.js504
1 files changed, 504 insertions, 0 deletions
diff --git a/node_modules/webpack-cli/bin/config/config-yargs.js b/node_modules/webpack-cli/bin/config/config-yargs.js
new file mode 100644
index 0000000..dc78f95
--- /dev/null
+++ b/node_modules/webpack-cli/bin/config/config-yargs.js
@@ -0,0 +1,504 @@
+const optionsSchema = require("../config/optionsSchema.json");
+
+const { GROUPS } = require("../utils/constants");
+
+const {
+ CONFIG_GROUP,
+ BASIC_GROUP,
+ MODULE_GROUP,
+ OUTPUT_GROUP,
+ ADVANCED_GROUP,
+ RESOLVE_GROUP,
+ OPTIMIZE_GROUP,
+ DISPLAY_GROUP
+} = GROUPS;
+
+const nestedProperties = ["anyOf", "oneOf", "allOf"];
+
+const resolveSchema = schema => {
+ let current = schema;
+ if (schema && typeof schema === "object" && "$ref" in schema) {
+ const path = schema.$ref.split("/");
+ for (const element of path) {
+ if (element === "#") {
+ current = optionsSchema;
+ } else {
+ current = current[element];
+ }
+ }
+ }
+ return current;
+};
+
+const findPropertyInSchema = (schema, property, subProperty) => {
+ if (!schema) return null;
+ if (subProperty) {
+ if (schema[property] && typeof schema[property] === "object" && subProperty in schema[property]) {
+ return resolveSchema(schema[property][subProperty]);
+ }
+ } else {
+ if (property in schema) return resolveSchema(schema[property]);
+ }
+ for (const name of nestedProperties) {
+ if (schema[name]) {
+ for (const item of schema[name]) {
+ const resolvedItem = resolveSchema(item);
+ const result = findPropertyInSchema(resolvedItem, property, subProperty);
+ if (result) return result;
+ }
+ }
+ }
+ return undefined;
+};
+
+const getSchemaInfo = (path, property, subProperty) => {
+ const pathSegments = path.split(".");
+ let current = optionsSchema;
+ for (const segment of pathSegments) {
+ if (segment === "*") {
+ current = findPropertyInSchema(current, "additionalProperties") || findPropertyInSchema(current, "items");
+ } else {
+ current = findPropertyInSchema(current, "properties", segment);
+ }
+ if (!current) return undefined;
+ }
+ return findPropertyInSchema(current, property, subProperty);
+};
+
+module.exports = function(yargs) {
+ yargs
+ .help("help")
+ .alias("help", "h")
+ .version()
+ .alias("version", "v")
+ .options({
+ config: {
+ type: "string",
+ describe: "Path to the config file",
+ group: CONFIG_GROUP,
+ defaultDescription: "webpack.config.js or webpackfile.js",
+ requiresArg: true
+ },
+ "config-register": {
+ type: "array",
+ alias: "r",
+ describe: "Preload one or more modules before loading the webpack configuration",
+ group: CONFIG_GROUP,
+ defaultDescription: "module id or path",
+ requiresArg: true
+ },
+ "config-name": {
+ type: "string",
+ describe: "Name of the config to use",
+ group: CONFIG_GROUP,
+ requiresArg: true
+ },
+ env: {
+ describe: "Environment passed to the config, when it is a function",
+ group: CONFIG_GROUP
+ },
+ mode: {
+ type: getSchemaInfo("mode", "type"),
+ choices: getSchemaInfo("mode", "enum"),
+ describe: getSchemaInfo("mode", "description"),
+ group: CONFIG_GROUP,
+ requiresArg: true
+ },
+ context: {
+ type: getSchemaInfo("context", "type"),
+ describe: getSchemaInfo("context", "description"),
+ group: BASIC_GROUP,
+ defaultDescription: "The current directory",
+ requiresArg: true
+ },
+ entry: {
+ type: "string",
+ describe: getSchemaInfo("entry", "description"),
+ group: BASIC_GROUP,
+ requiresArg: true
+ },
+ "no-cache": {
+ type: "boolean",
+ describe: "Disables cached builds",
+ group: BASIC_GROUP
+ },
+ "module-bind": {
+ type: "string",
+ describe: "Bind an extension to a loader",
+ group: MODULE_GROUP,
+ requiresArg: true
+ },
+ "module-bind-post": {
+ type: "string",
+ describe: "Bind an extension to a post loader",
+ group: MODULE_GROUP,
+ requiresArg: true
+ },
+ "module-bind-pre": {
+ type: "string",
+ describe: "Bind an extension to a pre loader",
+ group: MODULE_GROUP,
+ requiresArg: true
+ },
+ output: {
+ alias: "o",
+ describe: "The output path and file for compilation assets",
+ group: OUTPUT_GROUP,
+ requiresArg: true
+ },
+ "output-path": {
+ type: "string",
+ describe: getSchemaInfo("output.path", "description"),
+ group: OUTPUT_GROUP,
+ defaultDescription: "The current directory",
+ requiresArg: true
+ },
+ "output-filename": {
+ type: "string",
+ describe: getSchemaInfo("output.filename", "description"),
+ group: OUTPUT_GROUP,
+ defaultDescription: "[name].js",
+ requiresArg: true
+ },
+ "output-chunk-filename": {
+ type: "string",
+ describe: getSchemaInfo("output.chunkFilename", "description"),
+ group: OUTPUT_GROUP,
+ defaultDescription: "filename with [id] instead of [name] or [id] prefixed",
+ requiresArg: true
+ },
+ "output-source-map-filename": {
+ type: "string",
+ describe: getSchemaInfo("output.sourceMapFilename", "description"),
+ group: OUTPUT_GROUP,
+ requiresArg: true
+ },
+ "output-public-path": {
+ type: "string",
+ describe: getSchemaInfo("output.publicPath", "description"),
+ group: OUTPUT_GROUP,
+ requiresArg: true
+ },
+ "output-jsonp-function": {
+ type: "string",
+ describe: getSchemaInfo("output.jsonpFunction", "description"),
+ group: OUTPUT_GROUP,
+ requiresArg: true
+ },
+ "output-pathinfo": {
+ type: "boolean",
+ describe: getSchemaInfo("output.pathinfo", "description"),
+ group: OUTPUT_GROUP
+ },
+ "output-library": {
+ type: "array",
+ describe: "Expose the exports of the entry point as library",
+ group: OUTPUT_GROUP,
+ requiresArg: true
+ },
+ "output-library-target": {
+ type: "string",
+ describe: getSchemaInfo("output.libraryTarget", "description"),
+ choices: getSchemaInfo("output.libraryTarget", "enum"),
+ group: OUTPUT_GROUP,
+ requiresArg: true
+ },
+ "records-input-path": {
+ type: "string",
+ describe: getSchemaInfo("recordsInputPath", "description"),
+ group: ADVANCED_GROUP,
+ requiresArg: true
+ },
+ "records-output-path": {
+ type: "string",
+ describe: getSchemaInfo("recordsOutputPath", "description"),
+ group: ADVANCED_GROUP,
+ requiresArg: true
+ },
+ "records-path": {
+ type: "string",
+ describe: getSchemaInfo("recordsPath", "description"),
+ group: ADVANCED_GROUP,
+ requiresArg: true
+ },
+ define: {
+ type: "string",
+ describe: "Define any free var in the bundle",
+ group: ADVANCED_GROUP,
+ requiresArg: true
+ },
+ target: {
+ type: "string",
+ describe: getSchemaInfo("target", "description"),
+ group: ADVANCED_GROUP,
+ requiresArg: true
+ },
+ cache: {
+ type: "boolean",
+ describe: getSchemaInfo("cache", "description"),
+ default: null,
+ group: ADVANCED_GROUP,
+ defaultDescription: "It's enabled by default when watching"
+ },
+ watch: {
+ type: "boolean",
+ alias: "w",
+ describe: getSchemaInfo("watch", "description"),
+ group: BASIC_GROUP
+ },
+ "watch-stdin": {
+ type: "boolean",
+ alias: "stdin",
+ describe: getSchemaInfo("watchOptions.stdin", "description"),
+ group: ADVANCED_GROUP
+ },
+ "watch-aggregate-timeout": {
+ describe: getSchemaInfo("watchOptions.aggregateTimeout", "description"),
+ type: getSchemaInfo("watchOptions.aggregateTimeout", "type"),
+ group: ADVANCED_GROUP,
+ requiresArg: true
+ },
+ "watch-poll": {
+ type: "string",
+ describe: getSchemaInfo("watchOptions.poll", "description"),
+ group: ADVANCED_GROUP
+ },
+ hot: {
+ type: "boolean",
+ describe: "Enables Hot Module Replacement",
+ group: ADVANCED_GROUP
+ },
+ debug: {
+ type: "boolean",
+ describe: "Switch loaders to debug mode",
+ group: BASIC_GROUP
+ },
+ devtool: {
+ type: "string",
+ describe: getSchemaInfo("devtool", "description"),
+ group: BASIC_GROUP,
+ requiresArg: true
+ },
+ "resolve-alias": {
+ type: "string",
+ describe: getSchemaInfo("resolve.alias", "description"),
+ group: RESOLVE_GROUP,
+ requiresArg: true
+ },
+ "resolve-extensions": {
+ type: "array",
+ describe: getSchemaInfo("resolve.alias", "description"),
+ group: RESOLVE_GROUP,
+ requiresArg: true
+ },
+ "resolve-loader-alias": {
+ type: "string",
+ describe: "Setup a loader alias for resolving",
+ group: RESOLVE_GROUP,
+ requiresArg: true
+ },
+ "optimize-max-chunks": {
+ describe: "Try to keep the chunk count below a limit",
+ group: OPTIMIZE_GROUP,
+ requiresArg: true
+ },
+ "optimize-min-chunk-size": {
+ describe: getSchemaInfo("optimization.splitChunks.minSize", "description"),
+ group: OPTIMIZE_GROUP,
+ requiresArg: true
+ },
+ "optimize-minimize": {
+ type: "boolean",
+ describe: getSchemaInfo("optimization.minimize", "description"),
+ group: OPTIMIZE_GROUP
+ },
+ prefetch: {
+ type: "string",
+ describe: "Prefetch this request (Example: --prefetch ./file.js)",
+ group: ADVANCED_GROUP,
+ requiresArg: true
+ },
+ provide: {
+ type: "string",
+ describe: "Provide these modules as free vars in all modules (Example: --provide jQuery=jquery)",
+ group: ADVANCED_GROUP,
+ requiresArg: true
+ },
+ "labeled-modules": {
+ type: "boolean",
+ describe: "Enables labeled modules",
+ group: ADVANCED_GROUP
+ },
+ plugin: {
+ type: "string",
+ describe: "Load this plugin",
+ group: ADVANCED_GROUP,
+ requiresArg: true
+ },
+ bail: {
+ type: getSchemaInfo("bail", "type"),
+ describe: getSchemaInfo("bail", "description"),
+ group: ADVANCED_GROUP,
+ default: null
+ },
+ profile: {
+ type: "boolean",
+ describe: getSchemaInfo("profile", "description"),
+ group: ADVANCED_GROUP,
+ default: null
+ },
+ d: {
+ type: "boolean",
+ describe: "shortcut for --debug --devtool eval-cheap-module-source-map --output-pathinfo",
+ group: BASIC_GROUP
+ },
+ p: {
+ type: "boolean",
+ // eslint-disable-next-line quotes
+ describe: 'shortcut for --optimize-minimize --define process.env.NODE_ENV="production"',
+ group: BASIC_GROUP
+ },
+ silent: {
+ type: "boolean",
+ describe: "Prevent output from being displayed in stdout"
+ },
+ json: {
+ type: "boolean",
+ alias: "j",
+ describe: "Prints the result as JSON."
+ },
+ progress: {
+ type: "boolean",
+ describe: "Print compilation progress in percentage",
+ group: BASIC_GROUP
+ },
+ color: {
+ type: "boolean",
+ alias: "colors",
+ default: function supportsColor() {
+ return require("supports-color").stdout;
+ },
+ group: DISPLAY_GROUP,
+ describe: "Force colors on the console"
+ },
+ "no-color": {
+ type: "boolean",
+ alias: "no-colors",
+ group: DISPLAY_GROUP,
+ describe: "Force no colors on the console"
+ },
+ "sort-modules-by": {
+ type: "string",
+ group: DISPLAY_GROUP,
+ describe: "Sorts the modules list by property in module"
+ },
+ "sort-chunks-by": {
+ type: "string",
+ group: DISPLAY_GROUP,
+ describe: "Sorts the chunks list by property in chunk"
+ },
+ "sort-assets-by": {
+ type: "string",
+ group: DISPLAY_GROUP,
+ describe: "Sorts the assets list by property in asset"
+ },
+ "hide-modules": {
+ type: "boolean",
+ group: DISPLAY_GROUP,
+ describe: "Hides info about modules"
+ },
+ "display-exclude": {
+ type: "string",
+ group: DISPLAY_GROUP,
+ describe: "Exclude modules in the output"
+ },
+ "display-modules": {
+ type: "boolean",
+ group: DISPLAY_GROUP,
+ describe: "Display even excluded modules in the output"
+ },
+ "display-max-modules": {
+ type: "number",
+ group: DISPLAY_GROUP,
+ describe: "Sets the maximum number of visible modules in output"
+ },
+ "display-chunks": {
+ type: "boolean",
+ group: DISPLAY_GROUP,
+ describe: "Display chunks in the output"
+ },
+ "display-entrypoints": {
+ type: "boolean",
+ group: DISPLAY_GROUP,
+ describe: "Display entry points in the output"
+ },
+ "display-origins": {
+ type: "boolean",
+ group: DISPLAY_GROUP,
+ describe: "Display origins of chunks in the output"
+ },
+ "display-cached": {
+ type: "boolean",
+ group: DISPLAY_GROUP,
+ describe: "Display also cached modules in the output"
+ },
+ "display-cached-assets": {
+ type: "boolean",
+ group: DISPLAY_GROUP,
+ describe: "Display also cached assets in the output"
+ },
+ "display-reasons": {
+ type: "boolean",
+ group: DISPLAY_GROUP,
+ describe: "Display reasons about module inclusion in the output"
+ },
+ "display-depth": {
+ type: "boolean",
+ group: DISPLAY_GROUP,
+ describe: "Display distance from entry point for each module"
+ },
+ "display-used-exports": {
+ type: "boolean",
+ group: DISPLAY_GROUP,
+ describe: "Display information about used exports in modules (Tree Shaking)"
+ },
+ "display-provided-exports": {
+ type: "boolean",
+ group: DISPLAY_GROUP,
+ describe: "Display information about exports provided from modules"
+ },
+ "display-optimization-bailout": {
+ type: "boolean",
+ group: DISPLAY_GROUP,
+ describe: "Display information about why optimization bailed out for modules"
+ },
+ "display-error-details": {
+ type: "boolean",
+ group: DISPLAY_GROUP,
+ describe: "Display details about errors"
+ },
+ display: {
+ type: "string",
+ choices: ["", "verbose", "detailed", "normal", "minimal", "errors-only", "none"],
+ group: DISPLAY_GROUP,
+ describe: "Select display preset"
+ },
+ verbose: {
+ type: "boolean",
+ group: DISPLAY_GROUP,
+ describe: "Show more details"
+ },
+ "info-verbosity": {
+ type: "string",
+ default: "info",
+ choices: ["none", "info", "verbose"],
+ group: DISPLAY_GROUP,
+ describe: "Controls the output of lifecycle messaging e.g. Started watching files..."
+ },
+ "build-delimiter": {
+ type: "string",
+ group: DISPLAY_GROUP,
+ describe: "Display custom text after build output"
+ }
+ });
+};