Ce face npm install
Fără argumente, npm install (pe scurt npm i) instalează tot ce cere proiectul: dependențele din package.json, la versiunile fixate în package-lock.json. Este prima comandă după ce clonezi un proiect.
Cu numele unui pachet, îl descarcă în node_modules, îl adaugă la "dependencies" în package.json cu un interval de tip ^2.1.3 și actualizează package-lock.json. Pachetele necesare doar la dezvoltare (teste, formatare, compilare) se instalează cu -D și ajung în "devDependencies".
Poți cere o versiune anume (dayjs@1.11.10), o versiune majoră (chalk@4) sau ultima publicată (prettier@latest). Cu -E (--save-exact) npm scrie versiunea exactă, fără ^. Cu -g pachetul se instalează global, pentru comenzile lui de terminal, nu pentru un proiect anume.
Parametri
| Parametru | Descriere |
|---|---|
<pachet>@<versiune> |
Versiune exactă (1.11.10), interval (^3.3.0), versiune majoră (4) sau etichetă (latest, next). |
-D, --save-dev |
Trece pachetul la devDependencies. |
-E, --save-exact |
Salvează versiunea exactă, fără ^. |
-g, --global |
Instalează global (de obicei pentru comenzi de terminal). |
--omit=dev |
Nu instalează devDependencies (pentru servere de producție). |
--no-save |
Instalează fără să modifice package.json și package-lock.json. |
Exemple
Exemplul 1: O dependență, una de dezvoltare și una la versiune exactă
npm install ms
npm install -D prettier
npm install -E dayjs@1.11.10
Ieșire în terminal
added 1 package, and audited 2 packages in 773ms
found 0 vulnerabilities
added 1 package, and audited 3 packages in 718ms
1 package is looking for funding
run `npm fund` for details
found 0 vulnerabilities
added 1 package, and audited 4 packages in 637ms
1 package is looking for funding
run `npm fund` for details
found 0 vulnerabilities
Exemplul 2: Ce a scris npm în package.json
ms și prettier au primit un interval cu ^ (acceptă actualizări compatibile), iar dayjs versiunea exactă, pentru că am folosit -E.
{
"name": "magazin",
"version": "1.0.0",
"dependencies": {
"dayjs": "1.11.10",
"ms": "^2.1.3"
},
"devDependencies": {
"prettier": "^3.3.0"
}
}
Exemplul 3: Proiect clonat și instalare pentru producție
Pe calculatorul tău instalezi tot. Pe server, --omit=dev sare peste uneltele de dezvoltare, așa că se instalează mai puține pachete.
git clone https://github.com/ana-pop/magazin.git
cd magazin
npm install
npm install --omit=dev
Ieșire în terminal
added 3 packages, and audited 4 packages in 706ms
1 package is looking for funding
run `npm fund` for details
found 0 vulnerabilities
removed 1 package, and audited 3 packages in 467ms
found 0 vulnerabilities
Greșeli frecvente
- Pui
node_modulesîn Git. Directorul se reface oricând cunpm install; adaugă-l în.gitignore, dar păstreazăpackage-lock.jsonîn Git. - Instalezi global (
-g) o unealtă de care depinde proiectul (un compilator, un framework de teste). Colegii nu o vor avea. Instaleaz-o cu-Dși rulează-o prinnpm runsaunpx. - Pe macOS sau Linux rulezi
sudo npm install -gcând apare o eroare de permisiuni. Fișierele ajung ale lui root și problemele se înmulțesc; instalează Node.js cu un manager de versiuni (nvm, fnm) și-gnu mai are nevoie desudo.
Comenzi înrudite
npm uninstall: Elimină un pachet din node_modules, din package.json și din package-lock.json.npm ci: Instalare curată și exactă după package-lock.json, pentru servere de build, CI și producție.package-lock.json: Fișierul în care npm notează versiunea exactă a fiecărui pachet instalat, ca toată lumea să primească același node_modules.Versiuni semver (^, ~, >=): Cum citește npm versiunile MAJOR.MINOR.PATCH și intervalele ^, ~, >=, x din package.json.npm update / npm outdated: npm outdated arată pachetele rămase în urmă; npm update le aduce la cea mai nouă versiune permisă de intervalul din package.json.npx / npm exec: Rulează comanda unui pachet npm din proiect sau descărcat temporar, fără instalare globală.