npm
Npm est le gestionnaire de paquets (modules) officiel de Node.js. Celui-ci permet d’ajouter des modules externes dans une application Node.js Depuis la version 0.6.3 de Node.js, npm fait partie de l'environnement et est donc automatiquement installé par défaut. Npm fonctionne dans 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.
npm init
La commande npm init permet d’initialiser un projet Node.js dans le but de gérer les modules associés au projet.
Cette commande crée un fichier nommé package.json qui contiendra les configurations du projet ainsi que la liste des divers modules nécessaires pour son bon fonctionnement. L'option -y va créer le fichier avec les informations par défaut.
Cette commande devrait toujours être exécutée avant de procéder à l’installation de modules.
Manuel
package.json | |
---|---|
Si vous utilisez des ES module dans votre projet, ajouter la ligne "type": "module"
comme on peut voir dans l'exemple plus haut à la ligne 6.
npm install
La commande npm install permet d’installer des modules dans un projet. Lors de l’ajout d’un premier module au projet, le dossier node_modules est automatiquement créé. Pour installer un module dans un projet :
Pour chaque installation de module :
Un sous-dossier au nom du module est créé. Toutes les dépendances sont également chargées. Le module et ses dépendances sont ajoutées dans le fichier package.json
Partage et Déploiement :
Lorsqu’on partage un projet, on ne fournit généralement pas le dossier node_modules car sa taille peut devenir relativement élevée et les versions de Node.js ne sont pas nécessairement les mêmes.
La commande npm install (sans préciser le nom du module) permet d’installer automatiquement tous les modules manquants (npm se fie au fichier package.json pour identifier les modules à installer)
Les options
Lors de l’installation de modules, je recommande toujours d’utiliser la commande disponible dans la procédure d’installation du module. Parfois, certaines options sont nécessaires.
Manuel
Les plus courantes :
- --save ou -S : Ajoute le module à la liste de dépendances dans le fichier package.json. Cette option n’est plus nécessaire depuis la version npm 5.0.0, les modules étant ajoutés par défaut à la liste de dépendances. Vous verrez cependant régulièrement cette option dans les procédures d’installation de modules officiels.
- --global ou -g : Ajoute le module globalement sur votre PC. Je recommande peu cette option à moins que le module ne soit pas implicitement impliqué dans le projet. npm global (If you are using npm 5.2 or higher, we recommend using npx to run packages globally).
npm install --save-dev
Dans votre développement, c’est possible que vous utilisiez des modules seulement pour aider le développement, mais qui ne sont pas nécessaires en production.
Dans ce cas, il faut utiliser npm install avec l’option --save-dev ou -D.
Ex :
Dans packages.json ça donne :
{
"name": "AppName",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"nodemon": "^3.0.2"
}
}
Modules utiles au développement
nodemon
Module qui observe les fichiers de votre projet et qui redémarre le programme automatiquement.
Installation :
L'option -D (ou --save-dev) indique que le module sera installé que pour le développement et qui n'est pas nécessaire. C'est le cas ici pour nodemon
Pour faciliter l’utilisation de nodemon, ajoutez un script dans packages.json en ajustant le nom du fichier JavaScript à lancer au démarrage :
{
"name": "AppName",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"start": "nodemon fichier.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"nodemon": "^3.0.2"
}
}
Pour exécuter votre programme, il suffit de faire la commande suivante :
Attention
Si vous utilisez d'autres termes que start pour lancer votre script, vous devez faire la commande npm run
et le nom à utiliser. Par exemple si vous voulez lancer une commande avec le mot-clé dev, vous devrez faire :
dotenv
Paramétrez votre application directement dans le code est imprudent. Des informations confidentielles peuvent se retrouver dans votre dépôt GitHub à la vue de tout le monde, ex :
const cleAPI = "FKSDKLJFKDSKLJF898FSDKJKSD898F9DSKLFDSKFSD";
const utilisateurBD = "admin";
const motDePasse="password";
Installation :
Pour plus de sécurité créez un fichier nommé .env qui va contenir les informations sensibles. Ce fichier ne doit pas être indexé dans votre dépot Github, penser à l'ajouter au fichier .gitignore.
Ensuite dans le code importé le fichier et vous pouvez récupérer les informations de cette façon :Information à ajouter dans le fichier .gitignore
Il est essentiel de ne pas envoyer dans votre dépôt git le dossier node_modules ainsi que le fichier .env si vous en avez un. Ajoutez ces lignes dans .gitignore :
Parcontre notre application à besoin du fichier .env pour fonctionner. Une pratique courante est d'ajouter un fichier .env.exemple avec les constantes à avoir mais sans valeur pour indiquer à la personne qui va utiliser votre application quels champs remplir.
Mise à jour des modules
Pour mettre à jour les modules, on doit faire la commande
Explication du système de version et des symboles utilisés : npm version cheatsheet