En este artículo voy a explicar paso a paso cómo puedes publicar un paquete en un registry privado de NPM. Luego, te daré una rápida explicación de cómo tus usuarios pueden instalar el paquete, sin dejar de poder instalar paquetes desde el registro "normal" de npmjs.org 👌
¿Qué es un Registry?
Para resolver los paquetes por nombre y versión, npm (la herramienta CLI) habla con un sitio web de registro. El registro (registry en inglés) más popular está alojado por npm (la compañía) en registry.npmjs.org.
Autorizando a NPM
En el registry privado debe haber usuarios con sus respectivas credenciales, pero seguramente también se habrá generado un token de autenticación para poder publicar los paquetes. Este token será utilizado en los siguientes pasos.
Preparando tu paquete
Para esto ya debes haber generado el package.json
con el comando npm init
.
Hay tres formas de configurar el registry privado en tu paquete.
Logueándote si tienes usuario y contraseña
npm login --registry https://your-registry-url/
Creando un archivo .npmrc
Crea el archivo .npmrc
en la raíz del proyecto del paquete npm. Añade la siguiente línea
registry=//your-registry-url/:_authToken=00000000-0000-0000-0000-000000000000
Reemplaza "your-registry-url" por la url real del registry privado y "00000000-0000-0000-0000-000000000000" por tu token real.
Usando el CLI
npm config set '//your-registry-url/:_authToken' '00000000-0000-0000-0000-000000000000'
Reemplaza con los datos reales.
¡Publica!
Todo lo que queda por hacer es ejecutar
npm publish
Consumiendo tu paquete
En el proyecto donde tu paquete va a ser utilizado genera un archivo .npmrc
y agrega:
registry=https://your-registry-url/
Lo que es bueno es que sin ninguna otra configuración puedes instalar cualquier paquete del registro npm junto con esos. Así que puedes instalar lodash con la configuración anterior desde el registro de npm así como instalar un paquete desde el registro privado.
npm install <paquete-desde-registry-privado>
npm install lodash # paquete desde el registry de NPM
Pensamientos finales
Como ven no es cosa de otro mundo pero no hay mucha información tan detallada sobre esto, al menos yo tuve que buscar en varias fuentes para hacerlo durante esta semana en el trabajo y por eso es que lo recopilo aquí ✌️
¿Tienes alguna otra forma para realizar esto? Me encantaría saber, ¡deja un comentario abajo! 💬👇