@untool/yargs
@untool/yargs
is a core mixin providing untool
's actual command line interface, allowing other mixins to define their own commands. These custom commands will work exactly as those defined by untool
's own modules and can be called using a local or global un
executable.
Installation
$ yarn add @untool/yargs
CLI
@untool/yargs
can either be used with untool
's global command line interface or directly, within package.json
scripts of the project it is installed in: it locally installs an un
command.
$ un
Usage: un <command> [options]
Commands:
un serve Serve foo
un start Build and serve foo
un build Build foo
un develop Serve foo in watch mode
Options:
--version Show version number [boolean]
--help, -h Show help [boolean]
$ un start
foo listening at http://localhost:8080
foo built successfully in 1.4s
@untool/yargs
does not define any commands of its own, but takes care of basically setting up yargs
. In addition to the arguments defined by specific commands, it accepts --config:*
arguments. Using these, options defined by active presets can be overridden.
$ un start --config:port 9090
foo listening at http://localhost:9090
foo built successfully in 1.3s
API
@untool/yargs
exposes a couple of mixin hooks other mixins can implement, allowing them to alter or extend its functionality. These hooks will be called either by @untool/yargs
itself or by others.
registerCommands(yargs)
(pipe)
This is the most relevant hook provided by @untool/yargs
: it enables other mixins to register their respective commands. Implementations of this mixin method will receive two arguments: a yargs
instance and the command line arguments @untool/yargs
received. Implementations need to return the yargs
instance that they were called with.
const { Mixin } = require('@untool/core');
module.exports = class FooMixin extends Mixin {
registerCommands(yargs) {
return yargs.command({
command: 'foo',
handler: (argv) => {},
});
}
};