Aller au contenu

npm Gestionnaire de paquets

Copier toutes les commandes Générer PDF

Commandes et workflows complets npm (Node Package Manager) pour le développement JavaScript et Node.js.

Installation et configuration

Installer Node.js et npm

# Using Node Version Manager (recommended)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh|bash
nvm install node
nvm use node

# Direct download from nodejs.org
# Or using package managers:
# macOS: brew install node
# Ubuntu: sudo apt install nodejs npm
# Windows: choco install nodejs

Opérations de base

Command Description
npm install package_name Install package locally
npm install -g package_name Install package globally
npm uninstall package_name Uninstall package
npm update Update all packages
npm update package_name Update specific package
npm list List installed packages
npm list -g List global packages

Gestion de projet

Initialisation du projet

Command Description
npm init Initialize new project
npm init -y Initialize with defaults
npm init @scope Initialize with scoped template
npm create package_name Create project with template

Gestion de la dépendance

Command Description
npm install Install all dependencies
npm install --save package Install and save to dependencies
npm install --save-dev package Install and save to devDependencies
npm install --save-optional package Install as optional dependency
npm install --no-save package Install without saving

Informations sur l'emballage

Command Description
npm search keyword Search for packages
npm info package_name Show package information
npm view package_name View package details
npm outdated Show outdated packages
npm audit Check for vulnerabilities
npm audit fix Fix vulnerabilities

Scripts et exécution

Gestion des scripts

Command Description
npm run script_name Run custom script
npm start Run start script
npm test Run test script
npm run build Run build script
npm run dev Run development script

Exemple paquet.json Scripts

\\\\{
  "scripts": \\\\{
    "start": "node server.js",
    "dev": "nodemon server.js",
    "build": "webpack --mode production",
    "test": "jest",
    "lint": "eslint src/",
    "format": "prettier --write src/"
  \\\\}
\\\\}
```_

## Gestion des versions

### Version sémantique
|Command|Description|
|---------|-------------|
|`npm version patch`|Increment patch version|
|`npm version minor`|Increment minor version|
|`npm version major`|Increment major version|
|`npm version prerelease`|Create prerelease version|

### Installation du paquet par version
|Command|Description|
|---------|-------------|
|`npm install package@1.2.3`|Install specific version|
|`npm install package@latest`|Install latest version|
|`npm install package@next`|Install next/beta version|
|`npm install package@^1.2.0`|Install compatible version|

## Configuration

### Configuration de npm
|Command|Description|
|---------|-------------|
|`npm config list`|Show configuration|
|`npm config get key`|Get configuration value|
|`npm config set key value`|Set configuration value|
|`npm config delete key`|Delete configuration|

### Configuration commune
|Setting|Description|
|---------|-------------|
|`npm config set registry https://registry.npmjs.org/`|Set registry|
|`npm config set init-author-name "Your Name"`|Set default author|
|`npm config set init-license "MIT"`|Set default license|
|`npm config set save-exact true`|Save exact versions|

### Fichier .npmrc
```ini
# Project .npmrc
registry=https://registry.npmjs.org/
save-exact=true
engine-strict=true
fund=false
audit-level=moderate

# Global .npmrc (~/.npmrc)
init-author-name=Your Name
init-author-email=your.email@example.com
init-license=MIT
```_

## Édition

### Édition de paquets
|Command|Description|
|---------|-------------|
|`npm login`|Login to npm registry|
|`npm whoami`|Check logged in user|
|`npm publish`|Publish package|
|`npm publish --access public`|Publish scoped package publicly|
|`npm unpublish package@version`|Unpublish specific version|

### Flux de travail de l'édition
```bash
# 1. Update version
npm version patch

# 2. Build package
npm run build

# 3. Test package
npm test

# 4. Publish
npm publish

# 5. Tag release
git tag v1.0.0
git push origin v1.0.0

Utilisation avancée

Espaces de travail (npm 7+)

\\\\{
  "name": "my-monorepo",
  "workspaces": [
    "packages/*",
    "apps/*"
  ]
\\\\}
Command Description
npm install --workspaces Install all workspace dependencies
npm run test --workspaces Run tests in all workspaces
npm run build --workspace=package-a Run command in specific workspace

Lien entre les paquets

Command Description
npm link Create global link
npm link package_name Link to global package
npm unlink package_name Unlink package

Gestion des caches

Command Description
npm cache verify Verify cache integrity
npm cache clean --force Clear cache
npm cache ls List cached packages

Sécurité

Vérification de la sécurité

Command Description
npm audit Check for vulnerabilities
npm audit --audit-level high Check high severity only
npm audit fix Fix vulnerabilities automatically
npm audit fix --force Force fix (may break changes)

Vérification de l'emballage

Command Description
npm pack Create tarball
npm pack --dry-run Show what would be packed
npm install package.tgz Install from tarball

Optimisation des performances

Installation plus rapide

# Use npm ci for CI/CD
npm ci

# Parallel installation
npm install --prefer-offline

# Skip optional dependencies
npm install --no-optional

# Production only
npm install --production

Autres gestionnaires de paquets

Manager Installation Benefits
Yarn npm install -g yarn Faster, deterministic
pnpm npm install -g pnpm Disk space efficient
Bun curl -fsSL https://bun.sh/install \|bash Extremely fast

Dépannage

Questions communes

Problem Solution
Permission errors Use nvm or fix permissions
Package conflicts Delete node_modules and reinstall
Outdated npm npm install -g npm@latest
Registry issues npm config set registry https://registry.npmjs.org/

Déboguement

Command Description
npm doctor Check npm environment
npm ls Check dependency tree
npm ls --depth=0 Show top-level dependencies
npm why package_name Show why package is installed

Réinitialiser et nettoyer l'installation

# Clean install
rm -rf node_modules package-lock.json
npm install

# Clear npm cache
npm cache clean --force

# Reset npm configuration
npm config edit

Meilleures pratiques

Je vous en prie. Gestion

\\\\{
  "name": "my-project",
  "version": "1.0.0",
  "description": "Project description",
  "main": "index.js",
  "engines": \\\\{
    "node": ">=16.0.0",
    "npm": ">=8.0.0"
  \\\\},
  "dependencies": \\\\{
    "express": "^4.18.0"
  \\\\},
  "devDependencies": \\\\{
    "jest": "^29.0.0",
    "eslint": "^8.0.0"
  \\\\},
  "peerDependencies": \\\\{
    "react": ">=16.0.0"
  \\\\}
\\\\}

Développement Flux de travail

  1. ** Pinning de la version**: Utiliser des versions exactes pour les dépendances critiques
  2. Lock Files: Commit package-lock.json au contrôle de version
  3. Sécurité: Audits de sécurité réguliers avec npm audit
  4. Test: Test avant publication avec npm pack
  5. Documentation: Maintenir un README complet

Rendement

  1. CI/CD: Utiliser npm ci dans l'intégration continue
  2. Cachage: Mettre à profit le cache npm dans les environnements CI
  3. Installation sélective: Utiliser --production pour les constructions de production
  4. ** Directeurs alternatifs**: Considérer le fil ou le pnpm pour les grands projets
  5. Registre: Utiliser un registre privé pour les paquets internes