Les gestionnaires de paquets

Vous êtes intégrateur ou développeur et vous avez envie d’éviter les tâches répétitives pour chaque nouveau projet ? Le génie Triotech vous présente une panoplie d’outils qui gèrent les dépendances et vous permettront d’automatiser la plupart des tâches les concernant.

Ces outils vont vous aider à installer des dépendances comme jQuery ou Modernizr en une ligne de code !

Les différents gestionnaires de paquets

Commençons par une brève introduction : un paquet est une archive comprenant des fichiers informatiques, qui peuvent être utilisés une fois ce dernier installé. Les paquets proviennent de dépôts, et ce sont les gestionnaires de paquets qui font le lien entre ces dépôts, les paquets, et l’ordinateur de l’utilisateur.

Les fonctions de bases d’un gestionnaire de paquet sont simplistes : rechercher, installer, supprimer, mettre à jour ou publier, pour ne citer que les plus utiles.

Il existe également plusieurs types de gestionnaires de paquets, certains se trouvent au niveau du système d’exploitation, (et permettent de récupérer des « logiciels ») alors que d’autres sont spécifiques à un framework (et permettent de récupérer des « modules »).

1. NPM : Node Package Manager (Back-end)

Npm est un programme permettant de gérer des paquets pour le framework Node.js basé sur le langage JavaScript. (Ne pas confondre framework et langage !).

Si vous voulez installer npm, il existe plusieurs possibilités : il est normalement empaqueté avec Node.js et disponible à l’adresse https://nodejs.org/download/. Cependant, vous pouvez également passer par un gestionnaire de paquet de type « OS » comme Chocolatey (https://chocolatey.org/) pour Windows et simplement écrire dans l’invite de commande :

cinst nodejs.install

Les utilisateurs d’UNIX trouveront également cette commande très pratique pour télécharger npm :

curl https://www.npmjs.org/install.sh | sh
curl https://www.npmjs.org/install.sh | sudo sh # si besoin de sudo

Npm vous permettra de réutiliser et/ou de faire abstraction de tout ce qui est trop bas niveau, comme la gestion des sockets dans le cas d’un serveur web. Il va vous permettre de gérer vos modules côté back-end.

Par exemple, la bibliothèque JavaScript Underscore.js pourra être utilisée dans Node.js simplement en écrivant :

npm install underscore

Vous avez maintenant dans votre dossier node_modules, la présence de la librairie underscore, et pour l’utiliser un simple

var _ = require('underscore')

dans votre code suffit !

Voici la liste des différentes commandes de npm :

npm install npm uninstall npm search npm update

Si au contraire, vous êtes développeur, et vous voulez ajouter votre propre module afin qu’il soit utilisé par d’autre, vous aurez à faire :

# seulement la première fois :
    npm set init.author.name "Prénom Nom"
    npm set init.author.email "moi@example.com"
    npm set init.author.url "http://example.com"
    npm adduser
# pour chaque publication suivante
    npm init
    npm publish ./

De plus, npm vous permet également d’installer des paquets exécutables, tels que des outils de gestion de tâches comme grunt, ou même d’autres gestionnaires de paquet (ayant un but différent) comme bower !

2. Bower : Web Package Manager (Front-end)

Ce programme a été inventé par Twitter pour répondre au problème de gestion de paquets côté front-end.

L’avantage de ces gestionnaires de paquets réside également dans le fait qu’il est possible de conditionner les mises à jour des modules. Le Web essaie de se soumettre aux normes de gestion sémantique de version (https://semver.org/) et il est donc possible (une fois correctement configuré) de seulement mettre à jour les modules possédant des changements de type mineurs ou de type patch, afin de toujours respecter la rétrocompatibilité de ces derniers.

Bower est facile à prendre en main. Pour l’utiliser, vous devez au préalable avoir installé Node.js, npm, et git (facultatif, mais parfois indispensable).

npm install -g bower

(Notez la présence du -g qui signifie tout simplement « installation globale » car il s’agit d’un paquet exécutable.)

Une fois bower installé, vous pourrez l’utiliser de manière similaire à npm. Voici la liste des commandes disponibles :

bower install
bower uninstall
bower search
bower register # npm publish

A vos claviers !