Créer un package NPM avec Node.js
Publier un package sur npm (qu'on appelle Node Package Manager) est une excellente façon de partager du code réutilisable avec la communauté open-source des développeurs. Que vous ayez créé une simple librairie qui permet d'aller un peu plus vite ou directement un framework ou un outil puissant, publier votre package npm vous permettra de le rendre accessible à des milliers de développeurs à travers le monde.
Explorons étape par étape le processus pour publier un package npm à l'aide de Node.js et npm.
Un projet open-source est un projet partagé librement à toute la communauté des développeurs : son utilisation y est gratuite et chacun peut y apporter une contribution en général.
Prérequis
Avant de commencer, il y a tout de même quelques prérequis et outils à avoir sur votre ordinateur :
- Installer Node.js - Vous devez avoir sur votre ordinateur Node.js afin de pouvoir créer un package npm. Cliquez ici pour l'installer.
- Avoir un compte NPM - Pour créer un package, vous devez avoir votre propre compte créé sur npmjs.com
- Installer Git (optionnel) - Si vous souhaitez créer des versions différentes de votre package ou le partager sur un repository GitHub, vous devez aussi avoir Git installé sur votre ordinateur.
Étape 1 : créer un nouveau projet Node.js
Commencez par créer un répertoire pour votre nouveau package. Ensuite, initialisez un projet Node.js en utilisant la commande npm init
:
mkdir mon-package-believemy
cd mon-package-believemy
npm init
Voici ce que nous faisons :
mkdir
- Nous créons un dossier "mon-package-believemy"cd
- Nous allons dans notre dossiernpm init
- Nous initialisons NPM. Cette commande demande tout un tas de questions comme le nom du package, la version, une petite description voir encore votre prénom ainsi que votre nom. Mais vous pouvez aussi accepter les valeurs par défaut en appuyant simplement surEntrée
.
Normalement, notre nouveau fichier package.json
devrait maintenant être généré dans notre dossier. Il contient les informations de notre futur package.
Étape 2 : Créer le code du package
Maintenant que notre projet est initialisé, faisons en sorte que notre package fasse quelque chose ! 😬
Disons que notre package permet d'additionner deux nombres :
// index.js
function addition(a, b) {
return a + b;
}
module.exports = addition;
Nous avons simplement créé une fonction avant d'ajouter une instruction qui nous permet de l'exporter avec module.exports
.
Étape 3 : Préparer le package
Avant de proposer un package, il est primordial de vérifier les informations que notre fichier package.json
. En particulier, vérifiez bien ces trois informations :
main
- Ce champ doit pointer vers le fichier d’entrée de votre module, iciindex.js
.keywords
- Ce champ permet d'ajouter des mots-clés pour trouver plus facilement votre package sur npm.repository
(optionnel) - Si vous utilisez GitHub pour stocker vos fichiers, précisez juste l'URL de votre repository (que ce soit GitHub ou GitLab bien entendu 😉).
Par exemple :
{
"name": "mon-package-believemy",
"version": "1.0.0",
"description": "Juste un package qui additionne deux nombres",
"main": "index.js",
"scripts": {
"test": "echo \"Erreur : aucun test indiqué\" && exit 1"
},
"author": "Believemy",
"license": "MIT",
"keywords": ["additions", "mathematiques", "believemy"],
"repository": {
"type": "git",
"url": "indiquez ici votre url"
}
}
Étape 4 - Tester le package localement
Avant de publier votre package, vous pouvez le tester en l’utilisant localement. Pour essayer, il vous suffit de créer un autre projet Node.js afin d'installer votre package localement grâce à un lien symbolique.
Un lien symbolique (que l'on appelle symlink) est une sorte de petit raccourci vers un autre fichier ou dossier dans le système de fichiers. Dites-vous simplement qu'un lien symbolique permet d'ajouter une étiquette sur quelque chose, ce quelque chose étant un dossier ou un fichier.
Ceci nous permet de l'appeler bien plus facilement.
Par exemple, plutôt que d'appeler un fichier spécifique sur notre ordinateur comme ceci :
CONSOLEcode /chemin/pour/mon/dossier/original/sur/mon/ordinateur
Nous pouvons créer un lien symbolique pour lui donner une nouvelle étiquette :
CONSOLEln -s /chemin/pour/mon/dossier/original/sur/mon/ordinateur mon-dossier
Ici,
ln -s
demande à créer une nouvelle étiquette (un lien symbolique) pour la ressource/chemin
tout en ajoutantmon-dossier
comme nouveau raccourci.On peut donc faire :
CONSOLEcode mon-dossier
Dans le dossier du package
Dans le dossier de votre package voici ce que vous devez taper sur votre terminal :
npm link
Cette commande permet de créer un nouveau lien symbolique entre un package local et un projet avec Node.js. Généralement, on l'utilise pour tester localement un package : c'est exactement ce qu'on fait ! 😉
Dans le projet de test
Ensuite, dans votre projet de test, tapez :
npm link mon-package-believemy
Notre nouveau package est désormais lié à notre projet de test !
Étape 5 - Se connecter à NPM
Si vous n'êtes pas encore connecté à npm depuis la ligne de commande, vous devez vous connecter en utilisant la commande suivante :
npm login
Étape 6 - Publier le package ✨
Maintenant que tout est en place, vous êtes prêt à publier votre package ! Utilisez la commande suivante pour le publier sur le registre npm :
npm publish
Vous pouvez désormais retrouver votre tout nouveau package en le cherchant par son nom sur npmjs.com.
Si vous avez un conflit de nom : ceci veut dire que le nom que vous avez choisi pour votre package est déjà pris. Dans cette situation, modifiez juste votre champ
name
dans votre fichierpackage.json
et retapez la commandenpm publish
.
Étape 7 - Mettre à jour un package
Si vous modifiez votre package, vous devrez aussi modifier la version dans votre fichier package.json
avant de publier la mise à jour. Attention car npm suit les versions grâce à la sémantique de version (semver).
Par exemple :
- Pour un fix d'un bug - Vous devez incrémenter le dernier numéro de version (exemple : 1.0.1)
- Pour une nouvelle fonctionnalité qui ne casse rien (non-breaking) - Vous devez incrémenter le milieu (exemple : 1.1.0)
- Pour un changement important (breaking) - Vous devez incrémenter le premier numéro (exemple : 2.0.0)
Ensuite, publiez la nouvelle version en exécutant :
npm version patch
npm publish
Il est aussi possible de remplacer patch par :
minor
- pour une modification mineuremajor
- pour une modification majeure
Étape 8 - Rendre un package privé (bonus)
Si vous ne voulez pas que votre package soit public et accessible à tout le monde, vous pouvez le rendre privé en ajoutant la ligne suivante dans votre fichier package.json
:
"private": true
Cette instruction empêche la publication du package sur les recherches (on parle aussi aussi de registre) npm.
Une autre possibilité est de préciser pendant la publication de votre package sur npm que vous ne souhaitez pas le rendre public :
CONSOLEnpm publish --access=restricted
Rendre votre package privé à un coût : 7$ par mois.
Conclusion
Vous savez maintenant comment publier une package npm avec Node.js !
Publier un package npm est un excellent moyen de partager votre travail : comme on dit, il faut savoir rendre à la communauté ce que la communauté nous apporte avec tous ses outils open-source.
Et si vous voulez aller plus loin : apprenez à utiliser Git grâce à notre formation complète.