Registre NPM privé: publier son module
Il y a quelque temps, j'avais expliqué comment mettre en oeuvre un registre privé pour NPM pour ses projets: http://julienroche.blogspot.fr/2015/11/installer-un-registre-npm-personnel.html
Et là je viens de me rendre compte que j'avais omis d'expliquer comment publier son module dans son registre privé !
En effet, le lien ci-dessus ne va expliquer que comment installer Nexus de Sonatype et l'utiliser en somme en tant que mirroring.
Maintenant, voyons comment l'utiliser pour publier son module.
Tout d'abord, une petite modification dans son package.json. En effet, nous allons devoir indiquer dedans une propriété "publishConfig" afin de dire vers où nous souhaitons publier notre module. Si vous avez été attentif dans la lecture du lien précédent, vous aurez pu constater que nous avons créé un repository dédié à cela, le "npm-internal"
Du coup, mettons à jour notre package.json comme suit:
{ "name": "test", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "browser-es-module-loader": "0.2.0" }, "publishConfig" : { "registry" : "http://localhost:8081/nexus/content/repositories/npm-internal/" } }
Maintenant, nous allons mettre à jour notre fichier .npmrc. Nous allons devoir fournir deux informations importantes:
- Qui est l'utilisateur qui publie le module
- Le moyen de s'authentifier sur le registre privé (car généralement, nous sécurisons l'accès).
Tout d'abord, qui est l'utilisateur. Il vous faudra ajouter les lignes suivantes:
init.author.name = Jane Doe init.author.email = jane@example.com init.author.url = http://blog.example.com email=jane@example.com
Maintenant, comment s'authentifier auprès du nexus:
always-auth=true _auth=ZGVwbG95bWVudDpteVBhc3N3b3Jk
La ligne "always-auth" permet de dire que nous devons bien penser à s'authentifier.
La ligne "_auth" contient le token d'authentification.
Pour obtenir ce token, il vous suffit de connaître le principe du "Basic Access Authentication". Il s'agit d'encoder en base64 un login et et un mot de passe séparé par le caractère ":".
Par défaut, Nexus a un utilisateur "deployment". Par défaut encore il n'a pas de mot de passe mais il est vite conseillé d'en mettre un.
Et pour le générer, vous pouvez ouvrir une console NodeJs et taper la ligne suivante:
btoa('deployment:myPassword')
Et vous obtiendrez votre token !
Easy :)
Commentaires
Enregistrer un commentaire