minimist is the minimalist CLI argument parser engine for Node.js.
Basic Usage
const minimist = require('minimist');
const args = minimist(process.argv.slice(2), {
string: ['lang'], // Always parse --lang as a string
boolean: ['verbose'], // Always parse --verbose as a boolean
alias: { v: 'verbose', l: 'lang' }
});
console.log(args);
Full Options Reference
const args = minimist(process.argv.slice(2), {
string: ['lang'], // Strings that preserve leading zeros
boolean: ['pager', 'help'], // Treat flags as boolean switches
alias: { h: 'help', p: 'pager' }, // Short-to-long alias mapping
default: { lang: 'en', pager: true }, // Default values if omitted
'--': true, // Store arguments after '--' in args['--']
stopEarly: true, // Stop parsing flags at the first non-option
unknown: (arg) => { // Callback triggered when an unrecognized flag is seen
console.error(`Unknown flag: ${arg}`);
return false;
}
});
Parsing Output Structure
When executing:
node cli.js --lang es --no-pager -v input.txt
The resulting parsed object:
{
lang: 'es',
pager: false,
v: true,
verbose: true,
_: ['input.txt'] // Positional non-flag arguments
}