¿Buscas nuestro logo?
Aquí te dejamos una copia, pero si necesitas más opciones o quieres conocer más, visita nuestra área de marca.
Conoce nuestra marca.¿Buscas nuestro logo?
Aquí te dejamos una copia, pero si necesitas más opciones o quieres conocer más, visita nuestra área de marca.
Conoce nuestra marca.dev
Paula Fernández 27/09/2023 Cargando comentarios…
Cuando estamos trabajando en varios proyectos que tienen dependencias entre sí, necesitamos poder realizar e integrar con rapidez los cambios sin tener que desplegar versiones de prueba en repositorios centralizados, con los tiempos de espera que esto conlleva.
Para agilizar este tipo de desarrollos e integraciones existen varias herramientas que se pueden utilizar en el entorno local. Aquí analizaremos Verdaccio, una alternativa gratuita a muchas ofertas comerciales de repositorios privados.
Verdaccio es una aplicación desarrollada en Node.js que permite crear y gestionar un registro local de forma muy sencilla a través de un interfaz web y ofrece un servicio compatible con NPM, YARM y PNPM.
Además, utiliza su propia base de datos, por lo que puede actuar como proxy del servicio NPM. Esto quiere decir que cualquier llamada para realizar la carga de un paquete NPM público pasa por el servidor Verdaccio (funcionando como una caché de llamadas al repositorio público). De esta forma se acelera la instalación de los paquetes que haya manejado previamente.
Verdaccio funciona tanto en Mac/Linux como en Windows.
Dado que Verdaccio es un paquete npm, es bastante sencillo de utilizar y configurar, pudiendo hacer uso de su imagen Docker o instalarlo directamente en la propia máquina. En este post explicamos los pasos a seguir para instalar Verdaccio en tu propia máquina, pero si quieres hacer uso de la imagen Docker puedes obtener más información en la página web de Verdaccio.
Para instalar Verdaccio todo lo que necesitas hacer es ejecutar el comando npm install:
npm install -g verdaccio
La ejecución del comando verdaccio iniciará la instancia.
Al arrancar, se crea un pequeño repositorio por defecto y arranca un servidor en http://localhost:4873/. Desde este momento se puede usar el servicio NPM local que ofrece Verdaccio.
Si accedes a esta dirección, se mostrará la interfaz de búsqueda y administración de Verdaccio:
Para instalar paquetes usando el proxy que ofrece Verdaccio puedes hacerlo ejecutándolo de la siguiente manera:
npm install moment --registry http://localhost:4873/
Ahora que se encuentra funcionando en tu máquina de forma local, puedes ver que no ha sido necesario realizar ninguna configuración extra.
Si tienes curiosidad por saber dónde se encuentra guardada la configuración de Verdaccio junto con su base de datos, podrás buscar en la consola dónde se encuentra el fichero config.yaml. La ruta se muestra en consola al arrancar la aplicación de la siguiente forma:
Para saber dónde se están guardando los paquetes que descarga, basta con abrir este fichero de configuración y buscar el apartado referente a storage.
En el fichero config.yaml podrás realizar personalizaciones o configuraciones sobre el servicio que ofrece Verdaccio, por ejemplo:
Es importante saber que cualquier cambio que realices en este fichero de configuración necesitará que reinicies Verdaccio para que surta efecto los cambios.
Para publicar paquetes hace falta tener un usuario dado de alta. Para ello, basta con utilizar el comando adduser, este te preguntará por un nombre de usuario, una contraseña y un correo:
npm adduser --registry http://localhost:4873/
Este usuario se utiliza para la autenticación en Verdaccio. Junto al archivo de config.yaml podrás encontrar uno recién creado (htpasswd) que se utilizará para almacenar la sesión y las credenciales.
Una vez has creado el usuario, para publicar un paquete en Verdaccio lo único que necesitas hacer es ejecutar el comando publish
dentro del proyecto que quieras publicar:
npm publish --registry http://localhost:4873/
Para establecer por defecto el repositorio local, se ejecuta el comando set registry.
De esta forma, no tendrás que especificarlo en cada publicación de paquetes:
npm set registry http://localhost:4873/
Para publicar nuevas versiones de paquetes bastará con utilizar las instrucciones version
y publish
:
Eliminar paquetes publicados en el repositorio local se puede hacer de varias formas:
unpublish
seguido del nombre del paquete que se quiere eliminar (podría ser necesario utilizar --force para que se realice la eliminación del paquete).La mecánica para desinstalar Verdaccio es igual de fácil como fue instalarlo y bastaría con ejecutar el comando npm uninstall
::
npm uninstall -g verdaccio
Por último, si has configurado Verdaccio como el registro privado por defecto, deberás volver a poner el registro de npm apuntando al repositorio público de npm:
npm set registry http://registry.npmjs.org
Llegados a este punto, ahora cuentas con un registro privado propio, con el cual te vas a beneficiar de tener paquetes públicos almacenados en caché. Además, también puedes publicar paquetes privados y versiones sin tener que depender de una conexión a internet.
También se facilita la gestión local de paquetes, ya que es muy sencillo añadirlos o eliminarlos (por ejemplo, fallidos o erróneos) como hemos visto anteriormente.
En resumen, Verdaccio es una buena alternativa cuando trabajes en algún proyecto en el que haya que validar cambios realizados en otros proyectos. Por ejemplo, diseñando librerías de componentes reutilizables.
Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.
Cuéntanos qué te parece.