JavaScript:
Commandoregelargumenten lezen
Hoe:
Hier is de directe manier om het in Node.js te doen:
// process.argv bevat commandoregelargumenten
const args = process.argv.slice(2);
console.log(args);
// Voer dit script uit met: node jouwscript.js eersteArgument tweedeArgument
Voorbeelduitvoer als je node jouwscript.js ananas 42
uitvoert:
['ananas', '42']
Een pakket zoals yargs
gebruiken maakt het leven makkelijker, door je toe te staan argumenten bij naam te definiëren en te benaderen.
// Installeer met npm install yargs
const yargs = require('yargs/yargs');
const { hideBin } = require('yargs/helpers');
const argv = yargs(hideBin(process.argv)).argv;
console.log(argv);
// Voer dit uit met: node jouwscript.js --fruit ananas --nummer 42
En je zou krijgen:
{ fruit: 'ananas', number: '42' }
Schoon en duidelijk, met genoemde parameters.
Diepe Duik
Lang geleden werden argumenten in C gelezen met argc
en argv
in de main
-functie. In Node.js is process.argv
de go-to. Het is een array waar het eerste element het pad is naar het node uitvoerbare bestand, het tweede is de scriptbestandsnaam, en de rest zijn je eigenlijke argumenten.
yargs
is handig voor complexe apps: het analyseert argumenten in een handig object, regelt standaardwaarden, en genereert zelfs automatisch hulpberichten.
Er is ook het minimist
pakket, een lichter alternatief voor yargs
, als je van minimalisme houdt.
Diep van binnen gebruikt Node.js V8’s process.binding('options')
voor het parsen, wat niet is blootgesteld aan de gemiddelde gebruiker. Deze interne methode herbergt een hoop nut onder de kap, beheert het parsen en ophalen van commandoregelocties.
Zie Ook
- Node.js process.argv documentatie: https://nodejs.org/docs/latest/api/process.html#process_process_argv
- Yargs GitHub repo: https://github.com/yargs/yargs
- Minimist op npm: https://www.npmjs.com/package/minimist