process.argv în Node.js

Rulare și linie de comandă Toate versiunile Node.js

Tabloul cu argumentele din linia de comandă: process.argv.slice(2) dă ce a scris utilizatorul după numele scriptului.

Sintaxă
process.argv          // [calea lui node, calea scriptului, ...argumente]
process.argv.slice(2) // doar argumentele tale
process.execArgv      // opțiunile date lui node

Ce face process.argv

process.argv este un tablou de șiruri. Primul element este calea completă a executabilului node, al doilea calea completă a scriptului, iar de la al treilea încep argumentele scrise după numele fișierului. De aceea aproape mereu vei vedea process.argv.slice(2).

Toate argumentele sunt șiruri: node scor.mjs 10 dă "10", nu numărul 10. Opțiunile date lui Node.js înaintea fișierului (de exemplu --env-file=.env) nu apar în argv, ci în process.execArgv.

Pentru opțiuni cu nume (--oras Iași, -v) nu le analiza de mână: util.parseArgs din Node.js face asta corect.

Ce returnează

Un tablou de șiruri (string[]).

Exemple

Exemplul 1: Argumente simple

Scriptul nota.mjs primește un nume și o notă. Căile complete din primele două elemente diferă de la calculator la calculator.

// nota.mjs
const [nume = "Anonim", nota = "0"] = process.argv.slice(2);
console.log(`${nume} a luat nota ${Number(nota)}.`);
console.log(process.argv.length, "elemente în process.argv");

// în terminal:
// node nota.mjs Ana 10
// node nota.mjs

Ieșire în terminal

Ana a luat nota 10.
4 elemente în process.argv
Anonim a luat nota 0.
2 elemente în process.argv

Exemplul 2: argv și execArgv

Exemplele de pe această pagină sunt rulate cu node --no-warnings=ExperimentalWarning exemplu.mjs, fără argumente. Opțiunea lui Node.js apare în execArgv, iar din calea scriptului afișăm doar numele fișierului.

import path from "node:path";

console.log(path.basename(process.argv[1]));
console.log(process.argv.slice(2));
console.log(process.execArgv);

Rezultat

exemplu.mjs
[]
[ '--no-warnings=ExperimentalWarning' ]

Greșeli frecvente

  • Citești argumentul cu process.argv[0] sau [1]: acelea sunt căile lui node și ale scriptului. Primul argument al tău este process.argv[2].
  • Aduni argumentele direct: "2" + "3" dă "23". Transformă-le cu Number() și verifică Number.isNaN.
  • Un argument cu spații ajunge rupt în mai multe: node salut.mjs Ana Maria dă două elemente. Pune-l între ghilimele în terminal: "Ana Maria".

Comenzi înrudite

  • util.parseArgs: Citește opțiunile din linia de comandă (–port 8080, -v, –fara-culori) fără pachete ca yargs sau commander.
  • process.env: Obiectul cu variabilele de mediu ale procesului: configurări ca PORT, NODE_ENV sau chei de API, mereu ca șiruri.
  • process.exit / process.exitCode: Stabilește codul de ieșire al scriptului (0 = succes) sau oprește procesul imediat cu process.exit.
  • node script.js: Rulează un fișier JavaScript în terminal sau o bucată de cod dată direct în comandă (-e, -p).