fraza-key
Reprendre le token du registre depuis ~/.npmrc dans le .npmrc du projet, pour les modules Pro.
npm login dépose un token dans ~/.npmrc. Le .npmrc du projet, lui, doit porter ce token directement. fraza-key fait le pont entre les deux.
Le token n'est nécessaire qu'aux modules Pro, publiés sous le scope @fraza-pro. @fraza/core et les modules gratuits s'installent sans lui.
npm login --registry=https://registry.fraza.ca/ # obtenir ou renouveler un token
npx fraza-key # le reprendre dans .npmrcCommandes
| Commande | Effet |
|---|---|
npx fraza-key | Équivaut à sync. |
npx fraza-key sync | Reprend le token de ~/.npmrc et l'écrit dans le .npmrc du projet. |
npx fraza-key status | Affiche l'état du token, masqué. |
npx fraza-key help | Affiche l'aide. |
sync crée le .npmrc avec les scopes @fraza et @fraza-pro et le token s'il n'existe pas. Sinon il ajoute ou remplace la ligne //registry.fraza.ca/:_authToken=, ajoute les lignes @fraza:registry= et @fraza-pro:registry= qui manqueraient, et préserve le reste du fichier.
Sans token dans ~/.npmrc, sync échoue et indique la commande npm login : la commande n'existe que pour reprendre ce token.
Quand la lancer
- Après un
npm login, sur un projet qui ajoute son premier module Pro ou qui a déjà les siens. - Sur un serveur de build d'un projet qui a des modules Pro, avant
npm ci.
Dans un projet déjà installé, npx fraza-key suffit après npm login. Sur un serveur, avant npm ci :
printf '@fraza:registry=https://registry.fraza.ca/\n@fraza-pro:registry=https://registry.fraza.ca/\n' > .npmrc
npm login --registry=https://registry.fraza.ca/
npx --yes --package=@fraza/core fraza-key
npm ci
npm run buildSur un clone neuf, node_modules n'existe pas encore : --package=@fraza/core dit à npx où trouver fraza-key, et les lignes de scope écrites d'abord le font chercher sur le registre Fraza. Un npx fraza-key nu irait chercher un paquet de ce nom sur npm public.
Une autre voie est possible sur un serveur : déposer directement un .npmrc contenant les deux lignes de scope et la ligne _authToken. Voir Déploiement.
Notes
Le token n'expire pas dans le temps. C'est un token opaque Verdaccio, pas un JWT. Il cesse de fonctionner seulement si le secret du serveur change, si le mot de passe de l'utilisateur est modifié, ou si le compte est révoqué. Un nouveau npm login n'invalide pas l'ancien.
Aucun code runtime n'a besoin de ce token. Il ne sert qu'à télécharger les @fraza-pro/module-* pendant l'installation. Le fournir au démarrage de l'application ne sert donc à rien : il doit être là avant le build.
Le .npmrc du projet porte le secret en clair. Il est suivi par git par défaut, ce qui suppose un dépôt privé. Voir Secrets et git pour le sortir du dépôt.
L'implémentation est décrite dans Registre npm.