What is meow?
The 'meow' npm package is a CLI helper that simplifies the process of writing command-line applications in Node.js. It parses arguments, generates help text, and handles errors.
What are meow's main functionalities?
Argument Parsing
Meow parses command-line arguments and options, making them easily accessible within your application.
const meow = require('meow');
const cli = meow(`
Usage
$ foo <input>
`);
console.log(cli.input); //=> ['inputValue']
console.log(cli.flags); //=> {flagName: flagValue}
Help Text Generation
Meow automatically generates and displays help text for your CLI application based on a template you provide.
const meow = require('meow');
const cli = meow(`
Usage
$ foo <input>
Options
--rainbow, -r Include a rainbow
`);
// If the user runs the command with `--help`, meow will automatically display the help text.
Flags Customization
Meow allows you to define and customize flags for your CLI application, including setting aliases and default values.
const meow = require('meow');
const cli = meow(`
Usage
$ foo <input>
`, {
flags: {
rainbow: {
type: 'boolean',
alias: 'r'
}
}
});
console.log(cli.flags.rainbow); //=> true or false
Other packages similar to meow
yargs
Yargs is a powerful npm package that helps you build interactive command-line tools, by parsing arguments and generating an elegant user interface. It's more feature-rich than meow, providing a wide range of options for argument parsing, command handling, and validation.
commander
Commander is another npm package for writing command-line applications. It's similar to meow but offers a more object-oriented approach to defining commands and options. Commander is well-suited for complex CLI applications with sub-commands.
minimist
Minimist is a minimalistic argument parsing library. Unlike meow, it focuses solely on parsing command-line arguments without any additional features like help text generation or input validation.
meow
CLI app helper
Features
- Parses arguments using minimist
- Converts flags to camelCase
- Outputs version when
--version
- Outputs description and supplied help text when
--help
Install
$ npm install --save meow
Usage
$ ./foo-app.js unicorns --rainbow-cake
#!/usr/bin/env node
'use strict';
var meow = require('meow');
var fooApp = require('./');
var cli = meow({
help: [
'Usage',
' foo-app <input>'
].join('\n')
});
fooApp(cli.input[0], cli.flags);
API
meow(options, minimistOptions)
Returns an object with:
input
(array) - Non-flag argumentsflags
(object) - Flags converted to camelCasepkg
(object) - The package.json
objecthelp
(object) - The help text used with --help
showHelp()
(function) - Show the help text and exit
options
help
Type: string
, boolean
The help text you want shown.
If you don't specify anything, it will still show the package.json "description"
.
Set it to false
to disable it all together.
version
Type: string
, boolean
Default: the package.json "version"
property
Set a custom version output.
Set it to false
to disable it all together.
pkg
Type: string
, object
Default: package.json
Relative path to package.json
or it as an object.
argv
Type: array
Default: process.argv.slice(2)
Custom arguments object.
minimistOptions
Type: object
Default: {}
Minimist options.
License
MIT © Sindre Sorhus