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
prebuildsaupostinstall:node --run buildnu le rulează. Dacă proiectul are astfel de scripturi, foloseștenpm run build. - Pui opțiunile scriptului fără
--:node --run test --verbosetrimite--verboselui Node.js, nu scriptului. Scrienode --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.