Il y a quelques jours, je vous parlais de mon projet open-source Peek, un utilitaire qui permet d'automatiser les screenshots de ses projets web, je lui ai d'ailleurs consacré un article entier disponible ici.

Mais depuis hier, il est disponible directement depuis npm en tant que paquet public sur NPM, juste ici !

Vous pouvez donc l'installer à tout moment globalement en local en faisant simplement :

$ npm install -g peek-js

Et pour fêter la publication de mon premier module, je me suis dit qu'un petit tutoriel rapide et détaillé pourrait aider certaines d'entre-vous, alors voilà !

Étape 1 : Créer un compte

Vous le savez, il est possible d'utiliser le registre de NPM sans avoir à créer de compte, pour simplement installer de nouveaux modules ou gérer les dépendances de ses projets.

J'ai d'ailleurs publié un article intitulé "Les 7 commandes NPM dont vous n'avez jamais entendu parler" pour vous faciliter la tâche !

Mais pour pouvoir publier vous-même de nouveaux paquets, il est nécessaire de créer un compte sur la plateforme : https://www.npmjs.com

Une fois le compte créé avec votre adresse e-mail, votre nom d'utilisateur et votre mot de passe, il vous suffira de valider votre adresse e-mail pour terminer le processus (à ne pas oublier).

Étape 2 : Se connecter

La plateforme peut laisser à penser que la création de nouveaux modules se fait directement depuis l'interface web, mais il n'en est rien.

Tout le reste du tutoriel se passe directement depuis votre terminal.

Pour vous connecter avec le compte fraîchement créé, ouvrez votre terminal préféré, et entrez la commande suivante :

$ npm login

Suite à cela, NPM vous demandera vos informations de login comme vous les avez créé lors de votre inscription, rentrez-les et ce dernier devrait vous afficher le message suivant : "Logged in as [username] on https://registry.npmjs.org/"

Étape 3 : Générer le manifeste

Si vous utilisez déjà NPM pour gérer les dépendances de votre projet, alors vous aurez sûrement déjà généré le manifeste nécessaire pour publier votre paquet et vous pouvez sauter cette étape.

Si vous n'êtes pas sûr d'avoir toutes les informations nécessaires présentes dans le fichier, je vous invite à vérifier la documentation du package.json !

Dans le cas où votre projet ne contient pas encore de manifeste, NPM vous met un utilitaire très simple pour le générer à partir des informations de base de votre projet. Pour l'utiliser il suffit de lancer la commande suivante :

$ cd [project-folder]
$ npm init

Et de rentrer les informations demandées comme ci-dessous :

package-name:
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords: 
license: (MIT)

Les informations indispensables sont le nom du paquet et sa version, à noter que le nom du paquet ne doit pas contenir d'espace, et que la version doit suivre le format de "semantic versioning".

Étape 4 : Publier son paquet

Une fois le manifeste créé, la publication de votre module ne nécessite plus qu'une seule commande, founie par NPM :

$ npm publish

Attention, le nom de votre paquet doit être unique et le registre NPM est sensible à la casse, si jamais votre paquet rentre en conflit avec un paquet déjà existant, votre terminal vous renverra l'erreur suivante :

403 Forbidden - PUT https://registry.npmjs.org/[package] - You do not have permission to publish "[package]". Are you logged in as the correct user?

Il vous suffira de modifier le nom de votre module dans le manifeste, et de réessayer !

L'idéal est de vérifier avant sur le site la disponibilité du nom, ou bien grâce à la commande "npm search [package]".

Si tout se passe bien, vous devriez seulement voir une ligne supplémentaire après les logs NPM vous indiquer : "+[package]@[version]". Bravo !

Étape 5 : Tester

L'avantage du registre NPM est qu'il se met à jour instantannément, il vous suffira donc d'installer votre propre module pour voir s'il a correctement été ajouté au registre. Pour celà, rien de plus simple :

$ npm install [package]

Et voilà, votre premier paquet NPM public est en ligne ! À noter que vous pouvez aussi publier des modules privés (pour faciliter la gestion des dépendances au sein de votre équipe), mais l'hébergement n'est pas gratuit, contrairement au registre public !

J'espère que cet article vous aura été utile, et à bientôt sur le blog !

À propos de l'auteur

Hello, je suis Nicolas Brondin-Bernard, ingénieur web indépendant depuis 2015 passionné par le partage de d'expériences et de connaissances.

Aujourd'hui je suis aussi coach pour développeurs web juniors, tu peux me contacter sur nicolas@brondin.com, sur mon site ou devenir membre de ma newsletter pour ne jamais louper le meilleur article de la semaine et être tenu au courant de mes projets !


Photo by AbsolutVision on Unsplash