|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- # meow [](https://travis-ci.org/sindresorhus/meow)
-
- > CLI app helper
-
- 
-
-
- ## Features
-
- - Parses arguments using [minimist](https://github.com/substack/minimist)
- - Converts flags to [camelCase](https://github.com/sindresorhus/camelcase)
- - Outputs version when `--version`
- - Outputs description and supplied help text when `--help`
- - Makes unhandled rejected promises [fail loudly](https://github.com/sindresorhus/loud-rejection) instead of the default silent fail
- - Sets the process title to the binary name defined in package.json
-
-
- ## Install
-
- ```
- $ npm install --save meow
- ```
-
-
- ## Usage
-
- ```
- $ ./foo-app.js unicorns --rainbow-cake
- ```
-
- ```js
- #!/usr/bin/env node
- 'use strict';
- const meow = require('meow');
- const foo = require('./');
-
- const cli = meow(`
- Usage
- $ foo <input>
-
- Options
- -r, --rainbow Include a rainbow
-
- Examples
- $ foo unicorns --rainbow
- 🌈 unicorns 🌈
- `, {
- alias: {
- r: 'rainbow'
- }
- });
- /*
- {
- input: ['unicorns'],
- flags: {rainbow: true},
- ...
- }
- */
-
- foo(cli.input[0], cli.flags);
- ```
-
-
- ## API
-
- ### meow(options, [minimistOptions])
-
- Returns an object with:
-
- - `input` *(array)* - Non-flag arguments
- - `flags` *(object)* - Flags converted to camelCase
- - `pkg` *(object)* - The `package.json` object
- - `help` *(object)* - The help text used with `--help`
- - `showHelp([code=0])` *(function)* - Show the help text and exit with `code`
-
- #### options
-
- Type: `object`, `array`, `string`
-
- Can either be a string/array that is the `help` or an options object.
-
- ##### description
-
- Type: `string`, `boolean`
- Default: The package.json `"description"` property
-
- A description to show above the help text.
-
- Set it to `false` to disable it altogether.
-
- ##### help
-
- Type: `string`, `boolean`
-
- The help text you want shown.
-
- The input is reindented and starting/ending newlines are trimmed which means you can use a [template literal](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/template_strings) without having to care about using the correct amount of indent.
-
- <del>If it's an array each item will be a line.</del>
- *(Still supported, but you should use a template literal instead.)*
-
- The description will be shown above your help text automatically.
-
- Set it to `false` to disable it altogether.
-
- ##### version
-
- Type: `string`, `boolean`
- Default: The package.json `"version"` property
-
- Set a custom version output.
-
- Set it to `false` to disable it altogether.
-
- ##### pkg
-
- Type: `string`, `object`
- Default: Closest package.json upwards
-
- Relative path to package.json or as an object.
-
- ##### argv
-
- Type: `array`
- Default: `process.argv.slice(2)`
-
- Custom arguments object.
-
- #### minimistOptions
-
- Type: `object`
- Default: `{}`
-
- Minimist [options](https://github.com/substack/minimist#var-argv--parseargsargs-opts).
-
- Keys passed to the minimist `default` option are [decamelized](https://github.com/sindresorhus/decamelize), so you can for example pass in `fooBar: 'baz'` and have it be the default for the `--foo-bar` flag.
-
-
- ## Promises
-
- Meow will make unhandled rejected promises [fail loudly](https://github.com/sindresorhus/loud-rejection) instead of the default silent fail. Meaning you don't have to manually `.catch()` promises used in your CLI.
-
-
- ## Tips
-
- See [`chalk`](https://github.com/chalk/chalk) if you want to colorize the terminal output.
-
- See [`get-stdin`](https://github.com/sindresorhus/get-stdin) if you want to accept input from stdin.
-
- See [`update-notifier`](https://github.com/yeoman/update-notifier) if you want update notifications.
-
- See [`configstore`](https://github.com/yeoman/configstore) if you need to persist some data.
-
- [More useful CLI utilities.](https://github.com/sindresorhus/awesome-nodejs#command-line-utilities)
-
-
- ## License
-
- MIT © [Sindre Sorhus](http://sindresorhus.com)
|