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