DevSecOps

Erori npm Install: Ghid Complet de Depanare

Nicu Constantin
--6 min lectura
#npm#nodejs#troubleshooting#package-management#javascript

Erorile la npm install pot bloca complet dezvoltarea. Acest ghid acoperă toate erorile comune npm și soluțiile lor.

Eroare: ERESOLVE - Conflict de Dependențe

Simptom:

npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR! While resolving: some-package@1.0.0
npm ERR! Found: react@18.2.0
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^17.0.0" from another-package@2.0.0

Soluția 1 - Instalare forțată (rezolvare rapidă):

# Ignoră verificările peer dependency
npm install --legacy-peer-deps
 
# Sau forțează prin conflicte
npm install --force

Soluția 2 - Folosește overrides (package.json):

{
  "overrides": {
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
  }
}

Soluția 3 - Actualizează pachetele conflictuale:

# Găsește pachetele învechite
npm outdated
 
# Actualizează un pachet specific
npm update another-package
 
# Verifică versiunile mai noi compatibile
npm view another-package versions

Eroare: EACCES - Permisiune Refuzată

Simptom:

npm ERR! code EACCES
npm ERR! syscall access
npm ERR! path /usr/local/lib/node_modules
npm ERR! Error: EACCES: permission denied

Soluția 1 - Corectează prefixul npm (recomandat):

# Creează directorul global npm în home
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
 
# Adaugă în PATH (~/.bashrc sau ~/.zshrc)
export PATH=~/.npm-global/bin:$PATH
 
# Reîncarcă shell-ul
source ~/.bashrc

Soluția 2 - Corectează ownership-ul:

# Corectează permisiunile cache npm
sudo chown -R $(whoami) ~/.npm
 
# Corectează permisiunile node_modules
sudo chown -R $(whoami) /usr/local/lib/node_modules

Soluția 3 - Folosește nvm (cea mai bună soluție):

# Instalează nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
 
# Instalează Node prin nvm (fără sudo)
nvm install 20
nvm use 20

Eroare: ENOENT - Fișier Negăsit

Simptom:

npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path /project/package.json
npm ERR! enoent ENOENT: no such file or directory

Soluția 1 - Verifică directorul curent:

# Verifică directorul curent
pwd
 
# Verifică dacă package.json există
ls -la package.json
 
# Inițializează dacă lipsește
npm init -y

Soluția 2 - Curăță cache-ul și reinstalează:

# Curăță cache-ul npm
npm cache clean --force
 
# Șterge node_modules și fișierul lock
rm -rf node_modules package-lock.json
 
# Reinstalează
npm install

Soluția 3 - Repară package-lock.json corupt:

# Șterge și regenerează fișierul lock
rm package-lock.json
npm install
 
# Sau folosește npm ci pentru medii CI
npm ci

Eroare: node-gyp Build Eșuat

Simptom:

npm ERR! code 1
npm ERR! gyp ERR! build error
npm ERR! node-gyp rebuild
npm ERR! gyp: No Xcode or CLT version detected!

Soluția 1 - Instalează build tools (macOS):

# Instalează Xcode Command Line Tools
xcode-select --install

Soluția 2 - Instalează build tools (Windows):

# Rulează PowerShell ca Administrator
npm install --global windows-build-tools
 
# Sau instalează manual Visual Studio Build Tools
# https://visualstudio.microsoft.com/visual-cpp-build-tools/

Soluția 3 - Instalează build tools (Linux):

# Ubuntu/Debian
sudo apt-get install build-essential python3
 
# CentOS/RHEL
sudo yum groupinstall "Development Tools"
sudo yum install python3

Soluția 4 - Specifică versiunea Python:

# Dacă ai mai multe versiuni Python instalate
npm config set python /usr/bin/python3
 
# Sau setează per proiect
npm install --python=/usr/bin/python3

Eroare: Probleme de Rețea / Registry

Simptom:

npm ERR! code ETIMEDOUT
npm ERR! network request to https://registry.npmjs.org/ failed
npm ERR! code ECONNRESET
npm ERR! network socket hang up

Soluția 1 - Folosește un registry diferit:

# Folosește un mirror npm
npm config set registry https://registry.npmmirror.com
 
# Resetează la valoarea implicită
npm config set registry https://registry.npmjs.org
 
# Verifică registry-ul curent
npm config get registry

Soluția 2 - Configurează proxy:

# HTTP proxy
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
 
# Șterge proxy
npm config delete proxy
npm config delete https-proxy

Soluția 3 - Crește timeout-ul:

npm config set fetch-timeout 60000
npm config set fetch-retries 5

Eroare: EINTEGRITY - Checksum Nepotrivit

Simptom:

npm ERR! code EINTEGRITY
npm ERR! sha512-xxxx integrity checksum failed
npm ERR! Verification failed while extracting package

Soluția 1 - Curăță cache-ul și reinstalează:

# Curăță cache-ul
npm cache clean --force
 
# Șterge fișierul lock și node_modules
rm -rf node_modules package-lock.json
 
# Reinstalează
npm install

Soluția 2 - Verifică registry-ul npm:

# Verifică dacă registry-ul e corect
npm config get registry
 
# Resetează registry-ul
npm config set registry https://registry.npmjs.org

Eroare: Maximum Call Stack Size Exceeded

Simptom:

npm ERR! Maximum call stack size exceeded
RangeError: Maximum call stack size exceeded

Soluție - Curăță și reinstalează:

# Curățare completă
rm -rf node_modules package-lock.json ~/.npm/_cacache
 
# Actualizează npm
npm install -g npm@latest
 
# Instalează cu cache curat
npm cache clean --force
npm install

Eroare: Unsupported Engine

Simptom:

npm WARN EBADENGINE Unsupported engine
npm WARN EBADENGINE current: { node: '16.0.0', npm: '8.0.0' }
npm WARN EBADENGINE required: { node: '>=18.0.0' }

Soluția 1 - Actualizează Node.js:

# Folosind nvm
nvm install 20
nvm use 20
 
# Verifică versiunea
node --version

Soluția 2 - Ignoră verificarea engine (temporar):

npm install --ignore-engines

Soluția 3 - Setează engines în package.json:

{
  "engines": {
    "node": ">=18.0.0",
    "npm": ">=9.0.0"
  }
}

Eroare: Cannot Find Module

Simptom:

Error: Cannot find module 'some-package'
MODULE_NOT_FOUND

Soluția 1 - Reinstalează dependențele:

rm -rf node_modules
npm install

Soluția 2 - Verifică instalarea:

# Verifică dacă pachetul e instalat
npm ls some-package
 
# Instalează pachetul lipsă
npm install some-package

Soluția 3 - Verifică calea de import:

// ❌ Import greșit
import something from 'Some-Package';  // Case matters!
 
// ✅ Import corect
import something from 'some-package';

npm vs yarn vs pnpm

| Problemă | npm | yarn | pnpm | |----------|-----|------|------| | Peer deps | --legacy-peer-deps | --ignore-peer-deps | --ignore-peer-deps | | Instalare curată | npm ci | yarn install --frozen-lockfile | pnpm install --frozen-lockfile | | Curățare cache | npm cache clean --force | yarn cache clean | pnpm store prune | | Cale globală | Set prefix | Set prefix | Set global-bin-dir |

Checklist Rapid de Depanare

# 1. Verifică versiunea Node/npm
node --version
npm --version
 
# 2. Verifică configurația npm
npm config list
 
# 3. Curăță tot
npm cache clean --force
rm -rf node_modules package-lock.json
 
# 4. Reinstalează
npm install
 
# 5. Output verbose dacă tot nu merge
npm install --verbose 2>&1 | tee npm-debug.log

Probleme Complexe cu npm?

Gestionarea pachetelor la scară mare necesită management atent al dependențelor. Echipa noastră te poate ajuta cu:

  • Configurare și optimizare monorepo
  • Configurare registry privat
  • Optimizarea performanței de build
  • Remedierea vulnerabilităților de securitate

Obține expertiză Node.js


Sistemul tau AI e conform cu EU AI Act? Evaluare gratuita de risc - afla in 2 minute →

Ai nevoie de ajutor cu conformitatea EU AI Act sau securitatea AI?

Programeaza o consultatie gratuita de 30 de minute. Fara obligatii.

Programeaza un Apel

Weekly AI Security & Automation Digest

Get the latest on AI Security, workflow automation, secure integrations, and custom platform development delivered weekly.

No spam. Unsubscribe anytime.