npm

npm (fausse abréviation de Node Package Manager) est le gestionnaire de paquets officiel pour Node.js.
Depuis la version 0.6.3 de Node.js, npm fait partie de l'environnement et est donc automatiquement installé avec.
npm fonctionne avec un terminal et gère les dépendances pour une application. Il permet également d'installer des applications Node.js disponibles sur le dépôt npm, https://www.npmjs.com/.
(source : Wikipédia)

Deux utilisations très différentes sont possibles :

  • Utiliser des paquets javascript pour son code comme jquery ou openlayers
  • Utiliser des paquets comme outils pour la programmation comme gulp, compass, …etc

Installation et prérequis

  1. Installer Node.js
  2. Sous windows, vérifier que l'adresse du répertoire nodejs est bien enregistrée dans les variables d'environnement du système (panneau de configuration > Système > Paramètres avancés > Variables d'environnement > path) pour pouvoir y accéder en ligne de commande:
    npm  ... 

Créer "un projet"

Dans le répertoire de mon projet:

monProjet> npm init

Npm demande alors plein de compléments d'informations que je détaillerai plus tard (todo), qui ne sont pas essentiels dans mon cas.
L'ensemble des informations et leur format est consultable sur https://docs.npmjs.com/files/package.json.
Pour le moment on fait “enter” partout. Npm crée alors le fichier package.json.

{
  "name": "elisabeth",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Elisabeth",
  "license": "ISC"
}

Installation d'un paquet outil

Installation globale

Généralement lorsqu'on installe un paquet comme outil, on en a besoin en ligne de commande, on fait donc une installation globale (-g). C'est le cas de browserify.

npm install -g browserify

Installation locale

Il est possible que l'on en ait besoin localement, que l'on ait des scripts qui l'utilise, alors on fera une installation locale, par exemple si on veut utiliser browserify avec gulp.(save = pour enregistrer dans package.json, dev utilisé qu'en développement)

npm install --save-dev browserify

browserify est alors installé localement dans le répertoire node_modules, et ajouté dans les “dev dépendances” du fichier package.json.

{
  "name": "elisabeth",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "browserify": "^13.0.0"
  }
}

Installation d'un paquet librairie

Ce type de package est nécessairement installé localement. Si on veut suivre les mises à jour, on ajoute un –save pour que la dépendance soit enregistrée dans package.json

npm install jquery

Le package jquery est alors ajouté au dossier node_modules de mon projet.
Si on a ajouté un –save, il est enregistré dans package.json.

{
  "name": "elisabeth",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "jquery": "^2.2.1"
  },
  "devDependencies": {
    "browserify": "^13.0.0"
  }
}

Mise à jour

Mise à jour locale

Pour savoir si des packages ne sont pas à jour.

monProjet> npm outdated
monProjet> npm update

La mise à jour dépend de la version spécifiée pour chaque package dans package.json.


Elisabeth Pointal 23/02/2016 19:41