Ce face npx / npm exec
npx prettier cod.js caută întâi comanda prettier în node_modules/.bin al proiectului. Dacă nu o găsește, descarcă pachetul cu același nume într-un cache al npm (nu în proiect) și îl rulează. Așa folosești o unealtă o singură dată sau ai mereu ultima ei versiune fără npm install -g.
Înainte să descarce ceva, npx întreabă Ok to proceed? (y). --yes (-y) răspunde automat, util în scripturi și CI. Când numele comenzii diferă de numele pachetului, alegi pachetul cu -p: npx -p semver semver 1.2.3.
npm exec face același lucru; diferența este că opțiunile pentru npm vin înainte de --, iar cele pentru comandă după. Pentru o versiune anume scrii npx pachet@versiune.
Parametri
| Parametru | Descriere |
|---|---|
<comandă> |
Comanda de rulat; dacă lipsește local, npx caută pachetul cu același nume. |
-y, --yes |
Descarcă fără să mai întrebe. |
--no |
Refuză descărcarea: rulează doar ce e deja instalat. |
-p, --package <pachet> |
Pachetul care conține comanda (se poate repeta). |
Exemple
Exemplul 1: O unealtă instalată în proiect
prettier este în devDependencies, deci npx îl găsește în node_modules/.bin și nu descarcă nimic.
printf 'const x={a:1,b:"Iași"}\n' > cod.js
npx prettier cod.js
Ieșire în terminal
const x = { a: 1, b: "Iași" };
Exemplul 2: Un pachet descărcat doar pentru o rulare
Pachetul cowsay nu este instalat nicăieri; npx îl aduce în cache și îl rulează.
npx --yes cowsay "Salut, Iași!"
Ieșire în terminal
______________
< Salut, Iași! >
--------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
Exemplul 3: Pachet și comandă cu npm exec
Opțiunile lui npm (--yes, -p) stau înainte de --; după el vine comanda cu argumentele ei.
npm exec --yes -p semver -- semver -r "^1.2.0" 1.1.9 1.5.0 2.0.0
Ieșire în terminal
1.5.0
Greșeli frecvente
- Scrii greșit numele unui pachet: npx poate descărca și rula un alt pachet, cu nume asemănător. Verifică numele pe npmjs.com, mai ales cu
--yes. - Folosești npx pentru unelte de care depinde proiectul fără să le instalezi cu
-D: fiecare coleg primește altă versiune. Instalează-le în proiect și fixează versiunea. - Pui opțiunile comenzii înainte de
--lanpm exec: npm le ia drept ale lui.
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.npm install: Instalează pachete din registrul npm în node_modules și le trece în package.json și package-lock.json.npm init: Creează fișierul package.json al unui proiect nou; cu -y acceptă valorile implicite fără întrebări.pnpm și yarn (comparație cu npm): Comenzile npm și echivalentele lor în pnpm și Yarn, plus ce trebuie să știi despre Corepack în Node.js 25+.Versiuni semver (^, ~, >=): Cum citește npm versiunile MAJOR.MINOR.PATCH și intervalele ^, ~, >=, x din package.json.