"use strict"; const { build } = require( "./tasks/build" ); const yargs = require( "yargs/yargs" ); const slimExclude = require( "./tasks/lib/slim-exclude" ); const argv = yargs( process.argv.slice( 2 ) ) .version( false ) .command( { command: "[options]", describe: "Build a jQuery bundle" } ) .option( "filename", { alias: "f", type: "string", description: "Set the filename of the built file. Defaults to jquery.js." } ) .option( "dir", { alias: "d", type: "string", description: "Set the dir to which to output the built file. Defaults to /dist." } ) .option( "version", { alias: "v", type: "string", description: "Set the version to include in the built file. " + "Defaults to the version in package.json plus the " + "short commit SHA and any excluded modules." } ) .option( "watch", { alias: "w", type: "boolean", description: "Watch the source files and rebuild when they change." } ) .option( "exclude", { alias: "e", type: "array", description: "Modules to exclude from the build. " + "Specifying this option will cause the " + "specified modules to be excluded from the build." } ) .option( "include", { alias: "i", type: "array", description: "Modules to include in the build. " + "Specifying this option will override the " + "default included modules and only include these modules." } ) .option( "esm", { type: "boolean", description: "Build an ES module (ESM) bundle. " + "By default, a UMD bundle is built." } ) .option( "factory", { type: "boolean", description: "Build the factory bundle. " + "By default, a UMD bundle is built." } ) .option( "slim", { alias: "s", type: "boolean", description: "Build a slim bundle, which excludes " + slimExclude.join( ", " ) } ) .option( "amd", { type: "string", description: "Set the name of the AMD module. Leave blank to make an anonymous module." } ) .help() .argv; build( argv );