Parsing argomenti in Node.js con commander
Commander è una libreria per Node.js che ci consente di eseguire il parsing della riga di comando, inteso come i parametri che gli vogliamo passare.
Possiamo installarla tramite npm:
npm i commander
Qui sotto un esempio di codice Javscript:
const {program} = require('commander');
program
.command('print')
.description('TEST')
.argument('<nome>', 'Nome da visualizzare')
.option('--nome')
.option('--separator <char>')
.action((str, options) => {
const limit = options.first ? 1 : undefined;
console.log(str.split(options.separator, limit));
});
program.parse();
In pratica print è il comando, e poi ci sono i due parametri, di cui --nome è obbligatorio.
Qui sotto un pò di esempi di lancio con il conseguente output:
node main.js print -s=/ --nome matteo
[ 'matteo' ]
node main.js print --separator=/ --nome matteo/franco
[ 'matteo', 'franco' ]
node main.js print --separator=- --nome matteo/franco
[ 'matteo/franco' ]
node main.js print --nome matteo/franco
[ 'matteo/franco' ]
node main.js print
error: missing required argument 'nome'
Inoltre abbiamo anche l'help:
node main.js print -h
Usage: main print [options] <nome>
TEST
Arguments:
nome Nome da visualizzare
Options:
--nome
--separator <char>
-h, --help display help for command
Enjoy!
javascript nodejs commander
Commentami!