DEV Community

Cover image for Créer un backend en Javascript (partie 5) : NPM (Node Package Manager)
 Eric Le Codeur
Eric Le Codeur

Posted on

Créer un backend en Javascript (partie 5) : NPM (Node Package Manager)

Voici une série d'articles qui vous permettra créer des applications backend en Javascript.

Node.js est aujourd'hui un incontournable, il est donc essentiel pour un développeur de le maitriser.

Je vais donc publier un nouvel article environ au deux jours et petit à petit vous apprendrez tout ce qu'il y a à savoir sur Node.js

Pour ne rien manquer suivez moi sur twitter : https://twitter.com/EricLeCodeur


NPM (Node Package Manager)

Vous désiré créer une fonction ou un module NodeJS ? Pourquoi ré-inventer la roue ? Il y a de forte chance que la fonction que vous désirez coder à déjà été conçu par un autre dévelopeur.

NodeJS, vous permet d'utilisé des librairies créé par la communauté. Pour ce faire il existe un outils appelé NPM (Node package manager) qui permet de télécharger, d'installer et de gérer ces packages.

NPM est déjà pré-installé avec Node.js. c'est une application de type ligne de commande qui vous permettra d'installer le package de votre choix.

Le site web https://www.npmjs.com/ contient la liste de tous les packages disponibles via NPM. Il y a en plus de un millions.

NPM prévoit un système qui permet de faire la gestion des packages installé et de leur version. Cette gestion ce fait avec l'aide d'un fichier qui se nomme 'package.json'

Ce fichier 'package.json' est unique à notre application et contient la liste des 'dependencies' de notre projet. C'est à dire la liste de tous les packages installé et leur version.

Ce fichier contient également d'autre information sur votre projet comme le nom, l'auteur et le fichier d'entré (le premier que Node.jS va exécuter). Il est également possible de créer des commandes 'script' pour lancer certaine fonction comme le serveur ou la compilation et l'exécution du projet.

Vous pouvez créer ce fichier 'package.json' manuellement ou lancé une commande NPM pour le faire automatiquement

$ npm init
Enter fullscreen mode Exit fullscreen mode

La commande posera quelques questions. Utilisez simplement les réponses par défaut et il créera le fichier de 'package.json'

À noter que si vous n'avez ps créé de fichier 'package.json' lorsque vous installerai votre premier package, NPM va créer le fichier automatiquement pour vous.

Nous allons maintenant installer notre premier package nommé 'slugify'. Ce package est un petit utilitaire pour créer une URL conviviale pour le Web à partir d'une chaîne. Ex. « Bienvenue chez moi » se transformera en URL conviviale pour le Web : bienvenue-chez-moi

Pour installer le package entrer la commande suivante dans le terminal :

npm install slugify
Enter fullscreen mode Exit fullscreen mode

Une fois le package installé, vous pouvez consulter le fichier 'package.json', vous y trouverez le package 'slugify' listé sous la liste des 'dependencies' :

{
  "dependencies": {
    "slugify": "^1.6.0"
  }
}
Enter fullscreen mode Exit fullscreen mode

À noter que les fichiers sources de ce packages ont tous été copier dans le dossier 'node_modules'

Ce package peut maintenant être utilisé dans votre application

const slugify = require('slugify')

console.log(slugify('My New Web Site'))
// My-New-Web-Site
Enter fullscreen mode Exit fullscreen mode

NPM peut également installer des packages globalement afin que toute les applications Node.js sur votre ordinateur puisse importer et utiliser les packages installés. NPM installe les packages globaux dans le dossier //local/lib/node_modules.

Ajouter -g dans la commande d'installation pour installer le package globalement.

$ npm install create-react-app -g
Enter fullscreen mode Exit fullscreen mode

La plupart du temps, vous aurez besoin de privilèges d'administrateur pour installer un package globalement. Dans ce cas, utilisez la commande sudo (sur Mac)

$ sudo npm install create-react-app -g
Enter fullscreen mode Exit fullscreen mode

Gestion des versions

Nous pouvons voir le numéro de version du package dans le fichier de 'package.json'

"dependencies": {
    "slugify": "^1.4.7"
  }
Enter fullscreen mode Exit fullscreen mode

Le numéro de version se lit comme ceci (ex. 1.4.7) :

  • Version majeure (1) : Nouvelle version avec des changements de rupture
  • Version mineure (4) : Nouvelles fonctionnalités mais pas de changements de rupture
  • Patch version (7) : Seuls les bugs sont corrigés
  • Préfixe de version : ^1.4.7 : Accepter la mise à jour de la version mineure ~1.4.7 : Accepter uniquement la mise à jour de la version du correctif (patch version)) *1.4.7 : Accepter toutes les mises à jour de version (non recommandé)

Mise à jour des packages

npm update slugify
Enter fullscreen mode Exit fullscreen mode

Cette commande installera les mises à jour acceptées (si elles existent à ce moment-là)

Deinstallation des packages

npm uninstall slugify
Enter fullscreen mode Exit fullscreen mode

Dossier node_modules

Lorsque vous installez un package, le contenu du package sera installé dans ce dossier. Si vous supprimez ce dossier, vous pouvez le recréer en exécutant :

$ npm install
Enter fullscreen mode Exit fullscreen mode

Cette commande réinstallera tous vos packages répertoriés dans le fichier de 'packages.json'

Cette commande est pratique pour installer des packages lorsque vous copiez une application d'un collègue ou depuis Github. Parce que lorsque vous le faites, le dossier node_modules n'est jamais fourni. Vous avez donc besoin de cette commande pour le recréer.

Node Package Execute (NPX)

npx est l'acronyme de Node Package execute. C'est un outil spécialement conçu pour l'exécution des paquets. Lorsque vous lancez l'exécution d'un paquet avec cet outil, npx va chercher dans la variable "PATH" de l'ordinateur puis dans les fichiers binaires des modules du projet pour lancer la commande. S'il ne l'a pas trouvé, l'outil est même capable d'aller sur internet chercher la commande et de l'exécuter ensuite.

Le paquet est exécuté dans le répertoire en cours. npx peut également être utilisé dans la section "scripts" du fichier "packages.json", afin de mettre des commandes qui lancent un serveur ou une plateforme au démarrage.

Lancer un paquet avec npx

npx creat-react-app my-app
Enter fullscreen mode Exit fullscreen mode

Le package nodemon

Lorsque vous développé une application NodeJS, chaque fois que vous modifiez votre code vous devez arrêter le serveur et relancer votre application. C'est une perte de temps énorme.

Heureusement, il existe un outils pour remédier a cela: nodemon

nodemon est un outil qui aide à développer des applications basées sur Node.js en redémarrant automatiquement l'application Node lorsque des modifications de fichier dans le répertoire sont détectées.

nodemon ne nécessite aucune modification supplémentaire de votre code ou de votre méthode de développement. nodemon est un wrapper de remplacement pour Node. Pour utiliser nodemon, remplacez le mot node sur la ligne de commande lors de l'exécution de votre script.

Exemple utilisation pour lancer/tester votre application:

$ npx nodemon app.js
Enter fullscreen mode Exit fullscreen mode

Installation du module en mode développement seulement

$ sudo npm install nodemon -D
Enter fullscreen mode Exit fullscreen mode

Il est également possible d'installer le package nodemon de façon global. De cette façon vous pourrer utiliser nodemon à partir de tous vos projets

Voici la commande pour l'installation

$ npm install nodemon -g
Enter fullscreen mode Exit fullscreen mode

Utilisation une fois installé globalement

$ nodemon app.js
Enter fullscreen mode Exit fullscreen mode

Conclusion

C'est tout pour aujourd'hui, suivez moi sur twitter : https://twitter.com/EricLeCodeur afin d'être avisé de la parution du prochain article (d'ici deux jours).

Discussion (0)