npm install în Node.js

npm și pachete Toate versiunile npm (salvare automată în package.json: npm 5)

Instalează pachete din registrul npm în node_modules și le trece în package.json și package-lock.json.

Sintaxă
npm install
npm install <pachet>[@versiune] [-D] [-E]
npm install -g <pachet>
npm i <pachet>

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 cu npm 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 prin npm run sau npx.
  • Pe macOS sau Linux rulezi sudo npm install -g câ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 -g nu mai are nevoie de sudo.

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ă.