NPM et bonnes pratiques : modules à usage personnel

Publier ou ne pas publier

Le problème exposé dans ce sujet a été résolu.

Bonjour,

Pour simplifier quelques projets écrits en JavaScript, je suis en train d’extraire certaines parties vers un module externe dont ils dépendraient. C’est un module documenté et tout, certes, mais extrêmement centré sur mon cas spécifique d’usage. Cela dit, pour pouvoir en dépendre facilement et déployer sans problèmes, j’aimerais pouvoir le mettre dans un dépôt externe.

Quelle est la bonne pratique dans ce genre de cas ? Est-ce que le mettre directement sur NPM se fait, pour pouvoir le référencer juste avec son nom en dépendance, ou vaut-il mieux dépendre d’un dépôt git quelconque directement ? Et que recommanderiez-vous ?

Merci d’avance !

+0 -0

Bonjour,

Un ami m’a conseillé d’utiliser Verdaccio : https://github.com/verdaccio/verdaccio.

Pour l’instant, je ne l’ai pas essayé ; le besoin n’étant plus à l’ordre du jour. Si des agrumes l’ont testé, ça m’intéresse un retour d’expériences.

En ce qui concerne le dépôt officiel NPM, tu peux payer pour avoir des dépôts privés : https://www.npmjs.com/products.

Merci pour l’outil, je note en cas de besoin (de moi ou de connaissances) !

Mais j’aurais dû préciser quelque chose : les modules en question sont de toute façon open source, donc je n’ai aucun problème avec l’idée de les avoir dans un dépôt public. La question que je me posais, c’était surtout sur le fait de “polluer” le dépôt public de NPM avec un module qui n’a pour utilisateur cible que moi-même.

+0 -0

Merci pour l’outil, je note en cas de besoin (de moi ou de connaissances) !

Mais j’aurais dû préciser quelque chose : les modules en question sont de toute façon open source, donc je n’ai aucun problème avec l’idée de les avoir dans un dépôt public. La question que je me posais, c’était surtout sur le fait de “polluer” le dépôt public de NPM avec un module qui n’a pour utilisateur cible que moi-même.

Amaury

T’inquiète pas, NPM est déjà pollué d’une montagne de paquet dans ce genre-là, qui ne sont, soit pas documenté, soit pour un cas tellement précis que ça n’a d’utilité que pour le créateur.

Si tu n’as pas besoin de partager, utiliser un repo Git fonctionne très bien, ça fait des tâches en moins et tu ne dépends ainsi pas de npm en plus du reste.

C’est d’ailleurs à ça que sert la propriété private du package.json : éviter que le paquet soit publié sur npm.


Pour info (ou pour d’autres qui passeraient par là avec un cas similaire) en local tu peux utiliser npm link pour te simplifier la tâche pour développer ta dépendance en même temps que ton projet depuis un répertoire local plutôt qu’avec une référence distante.

D’accord, merci à vous ! Je vais plutôt passer par un dépôt git directement, alors. Quitte à publier plus tard si j’estime que la bibliothèque en vaut le coup… mais chaque chose en son temps.

Pour info (ou pour d’autres qui passeraient par là avec un cas similaire) en local tu peux utiliser npm link pour te simplifier la tâche pour développer ta dépendance en même temps que ton projet depuis un répertoire local plutôt qu’avec une référence distante.

Ceci risque de m’être très utile. Actuellement je passe par une dépendance en file:// avec un chemin relatif, pour ça, mais c’est du temporaire, ça ne peut pas être publié vu que ça ne fonctionnerait qu’en local. Merci beaucoup !

+0 -0

Pour simplifier quelques projets écrits en JavaScript, je suis en train d’extraire certaines parties vers un module externe dont ils dépendraient.

Tu peux aussi inclure un fichier particulier d’une de tes dépendances :

const isEmail = require('validator/lib/isEmail')

const dependance = require('dependance/lib/core.js')
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte