node –run în Node.js

Rulare și linie de comandă Node.js 22.0 (stabil din 22.3)

Rulează un script din câmpul "scripts" al package.json direct cu Node.js, mai repede decât npm run.

Sintaxă
node --run nume-script [-- argumente]

Ce face node --run

node --run test caută cel mai apropiat package.json (urcând din directorul curent spre rădăcină), ia comanda din "scripts".test și o rulează în directorul acelui package.json. Pune în față node_modules/.bin, ca să găsească uneltele instalate local (de exemplu eslint).

Față de npm run, pornește mai repede, dar face intenționat mai puțin: nu rulează scripturile pre și post (de exemplu pretest) și nu setează variabilele npm_*. Setează în schimb NODE_RUN_SCRIPT_NAME și NODE_RUN_PACKAGE_JSON_PATH.

Argumentele de după -- sunt adăugate la comanda scriptului. Dacă scriptul nu există, Node.js afișează lista scripturilor disponibile.

Parametri

Parametru Descriere
nume-script Cheia din "scripts".
-- argumente Argumente adăugate la finalul comenzii scriptului.

Ce returnează

Codul de ieșire al comenzii rulate.

Exemple

Exemplul 1: Scripturi din package.json

salut.mjs afișează Salut, ${process.argv[2] ?? "lume"}!. Ultima comandă cere un script care nu există.

// package.json
{
  "name": "magazin",
  "version": "1.0.0",
  "type": "module",
  "scripts": {
    "start": "node server.mjs",
    "test": "node --test",
    "salut": "node salut.mjs"
  }
}

// în terminal:
// node --run salut
// node --run salut -- Ion
// node --run lipsa

Ieșire în terminal

Salut, lume!
Salut, Ion!
Missing script: "lipsa" for /home/ana/magazin/package.json

Available scripts are:
  start: node server.mjs
  test: node --test
  salut: node salut.mjs

Exemplul 2: Cine a pornit scriptul

Dacă scriptul "info" este node info.mjs, acesta poate afla numele scriptului din variabila setată de --run. Cu npm run info variabila lipsește (npm setează în schimb npm_lifecycle_event).

// info.mjs
console.log("Script:", process.env.NODE_RUN_SCRIPT_NAME ?? process.env.npm_lifecycle_event);

// în terminal:
// node --run info
// npm run info --silent

Ieșire în terminal

Script: info
Script: info

Greșeli frecvente

  • Te bazezi pe prebuild sau postinstall: node --run build nu le rulează. Dacă proiectul are astfel de scripturi, folosește npm run build.
  • Pui opțiunile scriptului fără --: node --run test --verbose trimite --verbose lui Node.js, nu scriptului. Scrie node --run test -- --verbose.

Comenzi înrudite

  • npm run: Rulează un script din câmpul „scripts” al package.json, cu node_modules/.bin în PATH și cu scripturile pre/post.
  • package.json: Fișierul de configurare al unui proiect Node.js: nume, versiune, tipul modulelor, scripturi, dependențe și versiunea Node cerută.
  • node --test (node:test): Rulează testele automate cu testerul inclus în Node.js: test, describe, it, fără Jest sau Mocha.
  • node --env-file: Încarcă variabilele de mediu dintr-un fișier .env în process.env, fără pachetul dotenv.