README

# Yargs

Yargs be a node.js library fer hearties tryin' ter parse optstrings

## Description :

Yargs helps you build interactive command line tools, by parsing arguments and generating an elegant user interface.

It gives you:

- commands and (grouped) options (`my-program.js serve --port=5000`).
- a dynamically generated help menu based on your arguments.

- bash-completion shortcuts for commands and options.
- and tons more.

## Installation

Stable version:

npm i yargs

Bleeding edge version with the most recent features:

npm i yargs@next

## Usage :

### Simple Example

#!/usr/bin/env node
const {argv} = require('yargs')
if (argv.ships > 3 && argv.distance < 53.5) {
console.log('Plunder more riffiwobbles!')
} else {
console.log('Retreat from the xupptumblers!')
}
$ ./plunder.js --ships=4 --distance=22
Plunder more riffiwobbles!
$ ./plunder.js --ships 12 --distance 98.7
Retreat from the xupptumblers!

### Complex Example

#!/usr/bin/env node
require('yargs') // eslint-disable-line
.command('serve [port]', 'start the server', (yargs) => {
yargs
.positional('port', {
describe: 'port to bind on',
default: 5000
})
}, (argv) => {
if (argv.verbose) console.info(`start server on :${argv.port}`)
serve(argv.port)
})
.option('verbose', {
alias: 'v',
type: 'boolean',
description: 'Run with verbose logging'
})
.argv

Run the example above with `--help` to see the help for the application.

## TypeScript

yargs has type definitions at @types/yargs.

npm i @types/yargs --save-dev

See usage examples in docs.

## Webpack

See usage examples of yargs with webpack in docs.

## Community :

Having problems? want to contribute? join our community slack.

## Documentation :

### Table of Contents

- Yargs' API
- Examples
- Parsing Tricks
  - Stop the Parser
  - Negating Boolean Arguments
  - Numbers
  - Arrays
  - Objects
  - Quotes
- Advanced Topics
  - Composing Your App Using Commands
  - Building Configurable CLI Apps
  - Customizing Yargs' Parser
- Contributing