Cinco formas de aprovechar Verdaccio, tu registro privado y proxy de Node.js

Rate this content
Bookmark

Verdaccio es un registro privado y proxy de Node.js de código abierto y ligero hecho en JavaScript con una configuración completamente opcional que te permite publicar paquetes privados de Node.js y hacer proxy desde otros registros remotos. En esta charla, aprenderás cinco formas de aprovechar Verdaccio para mejorar tus flujos de trabajo y productividad.


Puedes revisar las diapositivas de la charla de Juan aquí.

32 min
18 Feb, 2022

Video Summary and Transcription

Verdash es un registro privado y proxy de Node.js ligero que te permite alojar y publicar paquetes privados. Ofrece cinco formas de usarlo, incluyendo la publicación de paquetes con espacios de trabajo npm y la gestión de conflictos. Verdash mejora la productividad del proyecto y la integración continua al cachear dependencias y versiones. Las consideraciones de seguridad son importantes, y Verdash ofrece funciones de seguridad como límite de velocidad. Se puede utilizar como registro para proyectos de código abierto y ofrece opciones de flexibilidad y personalización.

Available in English

1. Introducción a Verdash

Short description:

Hola, soy Juan Picado. Te mostraré cinco formas de usar Verdash para un registro privado y proxy de Node.js. Verdash es un registro privado y proxy de Node.js ligero que te permite alojar y publicar paquetes privados. Instala Verdash de forma global, ejecuta el comando y tendrás un registro con una interfaz de usuario para navegar por paquetes y dependencias privadas y públicas. Comencemos con la primera forma.

de aprovechar Verdash como un registro privado y proxy de Node.js. Así que, comencemos.

En primer lugar, algo sobre mí. Mi nombre es Juan Picado. Soy ingeniero senior de frontend en Mobility Dare, que es una marca de Ativinta. Estoy basado en Berlín. También dedico parte de mi tiempo a trabajar en proyectos de código abierto, principalmente manteniendo el proyecto Verdash. Así que, si no lo conoces, lo conocerás más en los próximos 20 minutos y espero que te guste. Así que, empecemos. Somos desarrolladores de Node.js y también desarrolladores de JavaScript. Así que puedo imaginar que ya has publicado un paquete y aún no has hecho esto. Entonces, disfrutarás de esta charla porque es muy, muy sencillo hacerlo localmente. Verdash es un registro privado y proxy de Node.js ligero, que es completamente opcional en su configuración, y te permite alojar y publicar paquetes privados de Node.js. Y es compatible con cualquier gestor de paquetes. Este diagrama describe un viaje sencillo de una solicitud donde el registro privado siempre está en el medio entre el remoto, que puede ser uno o más, y luego tienes una caché local. Y esta caché local realmente tiene beneficios. Quiero mostrarte cómo usarla en tu proyecto. Así que, en primer lugar, necesitas instalar Verdash. Y para eso, necesitas instalar el paquete globalmente. Y eso es todo. Así de simple, no necesitas hacer nada más, solo comenzar. Luego, lo siguiente que debes hacer es ejecutar el comando Verdash. Sí, eso es todo. Así que, tendrás un registro que se está ejecutando con una interfaz de usuario para navegar, no solo por paquetes privados, sino también por dependencias, incluso si son públicas. Porque Verdash, no carga ninguna solicitud de paquete a través del gestor de paquetes o la interfaz de usuario. Para ayudarte a comprender he preparado cinco formas básicas y cómo Verdash puede ser realmente útil para cualquier desarrollador de JavaScript.

2. Publicación de un paquete con npm Workspaces

Short description:

Lo cual es desarrollo personal. Vamos a publicar un paquete usando npm Workspaces. La estructura del proyecto consta de 5 módulos, con un módulo que hace referencia a otros. Inicia sesión en Verdash usando el comando 'login' y especifica la URL del registro si es necesario. Publica el paquete usando 'slack workspaces'. Los paquetes se pueden ver en la interfaz de usuario, junto con sus dependencias.

hoy en día. Así que, comencemos con el primero. Lo cual es desarrollo personal. Así que, vamos a publicar un paquete. Para este ejemplo, tengo un npm Workspaces, que es bastante simple y lo veremos ahora. Y la idea es publicar algunos paquetes. Así que, primero déjame mostrarte la estructura del proyecto, que no es mucho. Solo 5 módulos. Y uno de ellos, esta es la configuración para npm Workspaces, y uno de ellos hace referencia a otros en su interior. Veremos por qué hago esto cuando publiquemos y te lo mostraré en la misma. Así que lo primero que tienes que hacer es ejecutar Verdash. Y si quieres publicar necesitas iniciar sesión. Para eso, puedes usar el comando login. Y si quieres apuntar a otro registro, entonces usa la bandera registry y la URL del registro. En este caso, localhost 4873, que es el puerto predeterminado de Verdash. Inicias sesión y luego si no tienes ningún usuario simplemente usa lo que quieras. La contraseña y el correo electrónico no son importantes porque Verdash no los utiliza. Y luego estás conectado. Puedes ver que el servidor reacciona a cualquier comando que escribas. Esto se debe a que el gestor de paquetes está conectado con la API del registro. Así que ahora vamos a publicar un paquete. Y si has usado Workspaces en npm puedes publicar varios paquetes al mismo tiempo usando simplemente estos slack workspaces. Y esto es lo que vamos a hacer y simplemente sucede. Sí, lo hicimos. Así que tenemos paquetes en el registro. Así que veamos cómo se ven estos paquetes en el registro. Y esta es la interfaz de usuario. Puedes cambiar al modo oscuro. Y aquí tenemos los cinco paquetes. Genial. Y estas son las dependencias que te mostré antes. Así que simplemente puedes navegar a través de ellas y

3. Publicación de paquetes y manejo de conflictos

Short description:

Acabo de publicar un paquete en solo unos segundos. Si publicas un paquete privado con una versión que ya existe en el registro, recibirás un error 409. Para evitar esto, agrega un sufijo a la versión. Verdash fusiona tu versión local con las versiones upstream. La publicación en un entorno sin conexión requiere habilitar la publicación sin conexión en la configuración. Elimina la propiedad proxy para mejorar la experiencia sin conexión.

ver quién tiene las dependencias de quién. Y eso es todo. Así de simple. Acabo de publicar un paquete en solo unos segundos. Sí, pero hay una restricción que debes tener en cuenta. Si publicas un paquete, un paquete privado, cuya versión no existe en ninguno de los upstreams, que también llamamos Applinks, como VAC17 por ejemplo, si ya existe en el registro, Verdash siempre buscará esta versión y si ya existe y si la condición es verdadera, recibirás un error 409. Esto es bastante común si quieres parchear una versión pública, ¿verdad? Para evitar esto, simplemente puedes agregar un sufijo a la versión. Y tu versión no se perderá una vez que Verdash actualice nuevas versiones porque Verdash fusiona lo que tienes localmente con lo que tienes de los upstreams. Así que hagamos una demostración rápida también para mostrarte los beneficios y cómo podemos resolver esto con este paquete react. Veamos si encuentro el proyecto... Ah, aquí está. Aquí podemos ver esta versión, es la actual en npmjs. Ejecutemos Verdash nuevamente. Ya hemos iniciado sesión, así que no necesitamos iniciar sesión nuevamente. Y tratemos de publicar esta versión con la bandera registry. ¡Boom! ¡Sí! Conflicto de publicación. Para resolver esto puedes cambiar la versión manualmente, pero es mucho más fácil si usas una versión de parche. Y en este caso estoy usando la versión no de GitHub porque acabo de clonar este proyecto, no quiero crear una etiqueta local en mi proyecto. Así que simplemente ejecuto esta versión y cambiará automáticamente. Puedo ejecutarlo varias veces y puedes ver cómo la versión cambió según la anterior. Y ahora publiquemos este paquete. Simplemente publica y ahí está, así que si volvemos al registro nuevamente podemos ver si lo encuentro, podemos ver que la última versión es la que acabo de publicar. Si accedo a la versión de React podemos navegar a través de las versiones, por lo que puedo ver las que vienen de fuera más la que acabo de publicar. Así que continuemos con la siguiente diapositiva. Publicar es fácil, pero si estás trabajando en un entorno sin conexión como yo en este video trabajando en un avión, lo cual es bastante común si estás viajando o vives en áreas remotas o no hay conexión en absoluto. Si quieres publicar paquetes, y esta es la razón por la que existe Verdash, porque puedes publicar paquetes en cualquier lugar, entonces necesitas habilitar la publicación sin conexión en la configuración. Esto no está habilitado de forma predeterminada porque las razones son porque el registro siempre busca versiones en remotos. Si no hay conexión, la publicación fallará. Además, puedes mejorar la experiencia sin conexión eliminando la propiedad proxy en la configuración

4. Productividad del proyecto e Integración Continua

Short description:

La mayoría de los paquetes públicos que utilizamos se publican a través de registros privados, pero también se llaman desde otros registros. Los registros privados y los proxies son clave para tu canal de desarrollo, evitando tiempos de inactividad durante las interrupciones públicas. Verdash almacena en caché las dependencias y las versiones, acelerando las compilaciones y reduciendo las solicitudes externas. Los intervalos de caché configurables y las fallas máximas mejoran la experiencia del desarrollador.

archivo. Puedes verlo en la diapositiva. Verás más sobre esto en las próximas diapositivas. Hay una razón para eso. A continuación, se encuentra la productividad del proyecto e integración continua en registros privados. La mayoría de los paquetes públicos que utilizamos en la actualidad se publican a través del registro privado, pero también se llaman desde otros registros. Todos estos registros son servicios que requieren alta disponibilidad, pero esto no es 100% del tiempo, porque ocurren interrupciones públicas y debes estar preparado para ello. En esas situaciones es cuando las capacidades de los registros privados y los proxies son fundamentales para tu canal de desarrollo. Porque tener un registro proxy entre tu canal y tus servicios públicos evitará que tus equipos o tus compilaciones dejen de funcionar mientras ocurre una interrupción. Verdash tendrá esta capacidad de forma predeterminada, almacenará en caché cualquier dependencia y versión según la demanda, por lo que la próxima vez que se solicite, se servirá la que está en caché. Porque en el entorno de integración continua, las compilaciones se ejecutarán varias veces en la misma solicitud de extracción cuando envíes cambios a tu repositorio, lo que implica que el manifiesto del paquete para un paquete público se descargará una y otra vez. Verdash tiene un caché predeterminado de 2 minutos, pero puedes aumentar el caché simplemente indicando al registro que no necesitas una nueva versión cada 2 minutos, tal vez 10 minutos esté bien para ti. Esta es una práctica realmente buena porque acelerarás tus compilaciones, ya que el registro no necesitará hacer solicitudes externas para preguntar si tienes cambios nuevos. Además, si la red no funciona correctamente, también puedes aumentar el número máximo de fallas en la configuración. Todas estas configuraciones se basan en un enfoque del lado del cliente con intervalos amigables como 2 semanas, 3 semanas, 30 segundos y así sucesivamente. Esto hace que sea mucho más fácil para los desarrolladores entender qué es realmente

5. Consideraciones de seguridad para los registros

Short description:

La seguridad es un tema crucial que debe abordarse tanto desde el lado del cliente como desde el lado del servidor. Una configuración incorrecta en los registros puede hacer que los paquetes privados sean reemplazados por paquetes maliciosos en registros públicos. Es importante configurar correctamente el registro y aislar los paquetes privados utilizando ámbitos. Si utilizas Verdacho, se recomienda eliminar el proxy en la configuración para los paquetes privados.

los valores que has configurado. Y el tercer tema es seguridad porque la seguridad es un tema que debe abordarse desde 2 ángulos. Primero, desde el lado del cliente porque necesitas utilizar las configuraciones correctas en el Gestor de Paquetes. Puedes obtener más información sobre esto en el sitio web virtual. También tengo un enlace en las 2 diapositivas siguientes. Pero también desde el lado del servidor porque se plantea por sí mismo y voy a explicarlo un poco más ahora porque hay una razón. Y si no recuerdas lo que sucedió hace 1 año, déjame recordártelo rápidamente. Un investigador de seguridad descubrió que una configuración incorrecta en los registros podría permitir que los paquetes privados sean reemplazados por paquetes maliciosos, que se publican en registros públicos con el mismo nombre. Esto podría comprometer la seguridad. Esta historia es demasiado larga, pero aquí te dejo un buen artículo donde puedes leer más al respecto . Esto es solo un recordatorio de que un registro es una gran ventaja y te brinda una capa adicional de seguridad. Pero también es una gran responsabilidad porque debe configurarse correctamente. Aquí hay dos consejos prácticos. Primero, aísla tus paquetes privados utilizando ámbitos. Por lo general, es el nombre de tu empresa, de tu proyecto o de tu organización. Y también intenta registrar este nombre en registros públicos. Porque esta es una forma de tener un control total. En caso de que no hayas configurado correctamente el registro localmente, al menos tienes el control del ámbito externo. La segunda razón es, especialmente si estás utilizando Verdacho, por favor elimina el proxy en la configuración para evitar que el registro obtenga fuentes externas para actualizaciones. Esto es muy recomendable para los paquetes de ámbito. Si tienes la intención de que sean privados, especialmente si

6. Verdacho Seguridad y Pruebas de Paquetes

Short description:

La última versión de Verdacho incluye una nueva función de seguridad: límite de velocidad. Esta función se puede aplicar a puntos finales web y puntos finales de seguridad como inicio de sesión y cambio de contraseña. Las pruebas de extremo a extremo son cruciales para garantizar la integridad de tus paquetes. Las configuraciones incorrectas son trampas comunes al enviar un paquete, por lo que se recomienda realizar pruebas y utilizar un registro. Veamos un ejemplo de cómo solucionar un paquete roto en un proyecto de GitHub utilizando Verdacho y GitHub Actions.

si estás utilizando Verdacho. Por lo tanto, las últimas versiones de Verdacho incluyen una nueva función de seguridad, que es el límite de velocidad. En este punto, puedes agregar el límite de velocidad a dos áreas, que son los puntos finales web, los puntos finales de seguridad, que son el inicio de sesión y el cambio de contraseña. Con eso, vas a utilizar la posibilidad de un ataque de denegación de servicio, que son puntos clave en. Por defecto, están configurados con un número muy bajo de solicitudes, pero esto se puede cambiar. Por lo tanto, recomiendo totalmente utilizar esta función si aún no te has dado cuenta de que existe. Las pruebas de extremo a extremo, que son mis favoritas, garantizan la integridad de tus paquetes cuando publicas un paquete y la estructura y funcionalidad de estos modelos no se ven afectadas cuando los usuarios los consumen. Hay muchas formas de romper un paquete, la más común es la configuración incorrecta, porque no importa cuán bien probado esté tu modelo. Hay algunos pasos principales cuando estás configurando para enviar un paquete que dependen de los desarrolladores, y podría ser que olvidaste agregar el campo principal si estás intentando enviar un paquete de CommonJS, o tal vez olvidaste el módulo si estás intentando usar un módulo JSON, o tal vez olvidaste los patrones correctos en la propiedad de archivo en el paquete. Además, es posible que hayas configurado incorrectamente el archivo .npm.ignore en el archivo raíz. Hay muchas cosas involucradas en el envío de un paquete, y cualquier error cuenta y solo se puede detectar al publicar. Para eso, necesitas un registro. No puedes publicar instantáneas todo el tiempo en el público, especialmente si tienes paquetes privados, por lo que recomiendo probar la publicación de tus paquetes en cada solicitud de extracción, al igual que un storybook lo hace en esta diapositiva, por ejemplo. Veamos un ejemplo, puedo romper un paquete que está destinado a ser enviado como una interfaz de línea de comandos. Aquí tengo una demostración, si quieres verla más tarde, simplemente imprime `Hola mundo` en la consola y utiliza GitHub Actions, Docker y Node.js para ejecutar pequeñas pruebas de extremo a extremo. Entonces, como puedes observar, esta es una vista de mi proyecto de GitHub, donde mis pruebas están rotas en la rama principal. Entonces, veamos rápidamente cuál es la razón y solucionémoslo en un momento. Este es mi proyecto y, si te fijas, hay algo incorrecto en la configuración, en el paquete. Veamos por un momento qué podría ser, y parece que es el archivo bin. Este archivo no existe en la raíz, no existe. Entonces, ¿qué podemos hacer para solucionarlo? Bueno, simplemente usar el nombre correcto, ¿verdad? Y, en realidad, vamos a confirmar este archivo porque si... y esto debería solucionar el problema. Entonces, vamos a confirmar esto. No, no quiero romper la rama principal, quiero solucionarla. Sí, vamos a enviar estos cambios y mientras GitHub ejecuta la acción, te mostraré cómo estoy haciendo esta prueba. Entonces, si no estás familiarizado con GitHub Actions, es muy sencillo, te recomendaría totalmente que los uses. Aquí tenemos el servicio. El servicio es una propiedad que te permite usar imágenes de Docker dentro de tu acción. En este caso, estoy usando la imagen de Docker de Verdacio, que es la oficial. Estoy exponiendo un puerto, es decir, el mismo. Para el S73, con esto puedes

7. Publicación y Pruebas de Paquetes

Short description:

Primero, inicia sesión y publica el paquete. Luego, verifica si el paquete está disponible e instálalo globalmente. Ejecuta la prueba y si el resultado es bueno, todo está bien. De lo contrario, procesa x con uno. La acción de GitHub muestra que el maestro está nuevamente en verde.

utiliza el registro en todos los pasos a continuación. Entonces, primero solo inicio sesión porque sí, necesitas iniciar sesión la primera vez. Luego publico el paquete. Esto es lo que cualquier usuario hará. Luego, solo verifico si el paquete está allí, lo cual es opcional. Luego, instalo globalmente el paquete. Cuando instalas globalmente un paquete OGS usando VeeN, este comando estará disponible en el contexto global. Y luego ejecuto la prueba. En la prueba no tengo nada especial, solo estoy usando un proceso relajado, que utiliza SpanSync. Ejecutando el comando, se supone que estará disponible en el contexto global. Este será el primer punto de interrupción si no hay comando. Esta prueba fallará. Luego tomará el resultado. Y luego comparamos el resultado, si está bien, todo está bien. De lo contrario, proceso x con uno, lo que significa que GitHub fallará. Vamos a la acción de GitHub. Sí, hace dos minutos. El maestro arreglado funciona perfectamente. Si vemos la acción interna, podemos ver que esto pasó correctamente. Perfecto. Y el maestro está nuevamente en verde. Muy bien.

8. Using Verdacho as a Registry

Short description:

Existen muchos ejemplos de proyectos de código abierto que se pueden utilizar como recursos de aprendizaje. Angular CLI es un ejemplo de ello, que utiliza Chill para ejecutar Verdacho. Alojar un registro puede parecer desalentador, pero Verdacho proporciona un servidor y una interfaz de usuario en el mismo paquete, lo que lo convierte en una solución conveniente y rentable. Verdacho es flexible y se puede personalizar para satisfacer diferentes requisitos, como utilizar diferentes opciones de almacenamiento o implementar proveedores de autenticación personalizados. En general, Verdacho es un registro de código abierto diseñado para desarrolladores y colaboradores, que ofrece privacidad, flexibilidad y bajo costo.

Así que volvamos a las diapositivas. Hay muchos ejemplos de código abierto, y la mejor manera de aprender es un buen ejemplo es leer código abierto. Por ejemplo, puedes usar Angular CLI, que también utiliza Chill para ejecutar Verdacho. En este caso, están utilizando Verdacho programáticamente para ejecutar el registro, y esta también es una buena manera de hacerlo. Así que si quieres más ejemplos, solo envíame un mensaje en el chat y puedo darte más, porque tengo muchos más para compartir.

Um, porque tener tu propio registro puede ser intimidante. ¿Qué tan difícil es alojar un registro? ¿Cuánto cuesta? ¿Cuánto esfuerzo? Todas estas preguntas son comunes, y un registro necesita dos piezas fundamentales, el servidor y la interfaz de usuario, y Verdacho tiene ambos en el mismo paquete. Además, debes preguntarte qué esperas de un registro. Porque Verdacho se adapta mejor si buscas privacidad, flexibilidad, personalización, entornos sin conexión y en general, bajo costo. Porque eso es lo que estamos haciendo en la organización de Verdacho, estamos utilizando nuestro propio registro y nuestras compilaciones. Hemos estado ejecutando nuestro propio registro durante tres años, lo que cuesta alrededor de $60 al año. Y tenemos miles de compilaciones cada mes, incluyendo todas las dependencias de todas las personas que contribuyen, lo que supone muchas solicitudes al registro todos los días. Y hasta ahora no hemos necesitado escalar porque ha estado funcionando muy bien con la configuración predeterminada. Pero esta es nuestra propia configuración personal. Es posible que tengas requisitos diferentes, y Verdacho es flexible. Es posible que necesites un almacenamiento diferente. Por ejemplo, puedes usar S3 en Amazon Web Services o tu propio Cloud como Minio. Es posible que necesites tu propio proveedor de autenticación o tal vez cambiar por completo la interfaz. Verdacho también permite middleware porque utiliza Express en este punto. Este es un ejemplo. Estoy utilizando MPM Audit. Estamos aplicando plugins que brindan soporte a este comando. Así que es posible que desees ampliar tu propio registro. Pero sí, esto también puede incluir desarrollo personal, creando tus propios plugins. Así que eso es todo por mi parte. Muchas gracias por escuchar mi charla. Verdacho es un registro de código abierto hecho para desarrolladores y hecho para colaboradores, lo que hace de este proyecto una gran alternativa. Y en nombre de todos los colaboradores, gracias por ver mi charla. Y espero que te guste y aprendas algo hoy. No dudes en hacer más preguntas o contribuir al código abierto. Así que muchas gracias. Adiós.

QnA

Verdacho Pool Results and Contribution

Short description:

Echando un vistazo a los resultados de la encuesta, coincide con mis expectativas. Alojar un registro es el caso de uso más común, pero también hay otros temas interesantes como la seguridad y la integración continua. La mejor manera de contribuir a Verdacho es tener la voluntad de aprender. Hay varias formas de contribuir, como corregir tipos, mejorar el código o ayudar con las traducciones.

Echando un vistazo a los resultados de la encuesta, ¿qué opinas? Así que un tercio de todos los asistentes, bueno, les preocupa alojar un registro, pero también hay muchas respuestas interesantes como la seguridad. ¿Qué opinas al respecto? De hecho, he revisado los resultados y coincide con mis expectativas. Por lo general, el nombre de la descripción del proyecto indica que se puede alojar un registro. Este es el caso de uso más común. Pero también tiene otros, como mencioné en el libro. Y Antoine testing es una tendencia que se está volviendo popular. Viste en la presentación que mencioné algunos proyectos, pero veo muchos, muchos proyectos que tienen monorepos y les preocupa lo que están enviando. Antoine testing es algo importante. La seguridad, sí. El año pasado fue un año importante para los registros y la seguridad. Y el proyecto fue bifurcado por otro, que estaba más destinado al desarrollo personal. Esto es quizás lo menos conocido. Puedes usar un registro en tu computadora. Y lo que me sorprende es la integración continua, porque como mencioné, en una de las diapositivas generalmente no se usa. Confiamos mucho en los servicios y esto es peligroso. Así que sí, eso es genial. Gracias. Bueno, tenemos algunas preguntas, si no te importa. En primer lugar, esta es mi pregunta también, y creo que está en la mente de muchas personas. ¿Cuál es la mejor manera de contribuir a Verdacho? ¿Cuál es la mejor forma de involucrarse? Bueno, simplemente tener la voluntad de aprender. Esa es la más importante. Así es como empecé en Verdacho. Sí, quiero aprender Node.js y en el repositorio tenemos varias formas en las que puedes ayudar. Primero, si eres principiante, puedes empezar corrigiendo tipos que estamos migrando. Tenemos nuestra hoja de ruta en el repositorio, que es muy sencilla, y puedes encontrarla fácilmente en los problemas y las discusiones. Y hay una descripción de lo que puedes hacer. Ya sea que seas un desarrollador de Node.js puro y quieras aprender algo o mejorar el código, tienes los pasos de cómo hacerlo. Si te gusta más el front-end, tenemos una interfaz de usuario basada en React y Material UI, que también necesita ayuda. Y sí, puedes tener buenas características. Y si no

Verdacio Features and Comparison

Short description:

Puedes ayudar a traducir el software a varios idiomas. Verdacio se puede utilizar como proxy para múltiples registros, lo que te permite obtener paquetes de diferentes fuentes. Puedes definir reglas para buscar paquetes en diferentes registros, creando una combinación poderosa. Verdacio se diferencia de otros proyectos como Entropec, que ha tenido un desarrollo limitado.

Si eres un programador, tal vez quieras ayudar con las traducciones. También puedes ayudar a traducir el software a varios idiomas. Ya tenemos alrededor de 15 idiomas en la interfaz de usuario y también en ladocumentación. Y sí, también puedes ir al chat y ayudar a otros a usar Bellagio. Esa es otra forma. Muchas gracias. Eso es genial. Otra pregunta es, ¿se puede usar Verdacio como proxy para no solo uno, sino varios registros? Sí. Cuando estás usando Verdacio por primera vez e instalas paquetes a través de él, los paquetes no llegan mágicamente. Vienen del registro público, pero puedes usar varios. Quiero decir, imagina que tienes otro registro en tu empresa y quieres obtener los paquetes de allí y también del registro público. Así que puedes configurar uno o más. No hay límite. Quiero decir, creo que el límite es el cielo o, en este caso, tu hardware. Y si es privado, puedes usar credenciales para acceder a él. En tu empresa puedes configurar credenciales y acceder a varios registros. Esta es una de las características que no es muy conocida. Puedes definir un paquete específico, por ejemplo, React. Imaginemos. Y puedes buscar React en tu registro privado. Y puedes definir una regla, como, si no existe en el privado, entonces lo buscaré en el otro. Y puedes crear esta combinación, que es realmente agradable. Y sí, es totalmente, totalmente posible. Eso es realmente agradable. Bueno, otra pregunta que tenía es que estoy seguro de que otros pueden estar familiarizados con otras iniciativas para crear repositorios no-npm. Un ejemplo sería Entropec, que la gente podría conocer. ¿Cómo crees que Verdacio se compara o tal vez se diferencia de esos proyectos? ¿Cuál? ¿El Entropec que mencionaste? Sí, Entropec. ¿O tal vez hay otros proyectos de los que tienes conocimiento y que crees que son diferentes? No hay muchos en el código abierto, desafortunadamente. Me gustaría ver más. Pero la mayoría de esto, Entropec fue una idea que aún está abierta, pero parece que no ha tenido mucho desarrollo. Pero fue una idea para crear un registro, un registro distribuido. Sí, desafortunadamente no ha habido mucho desarrollo allí, pero la idea fue interesante.

Private Registries and Offline Learning

Short description:

Existen empresas que ofrecen registros privados de paquetes como servicios, pero requieren pago y dependen de la conectividad a internet. Sin embargo, Verdacho te permite instalarlo en tu computadora, brindando una experiencia de aprendizaje sin conexión.

Y aparte de eso, solo hay servicios. Hay algunas empresas que están creando registros, posibilidades de paquetes privados. Pero sí, quiero decir que tienes que pagar por ellos. Algunos tienen una prueba gratuita, que puedes usar. Pero la diferencia principal es que todavía son todos servicios, ¿verdad? Así que necesitas internet y básicamente, puedo decirte que la gente suele acercarse a mí para preguntarme cosas como `oh, vivo en esta área o vivo en este país, donde no se permite usar el servicio o lo que sea`. Y mi única forma de aprender Node.js es porque realmente puedo instalarlo en mi computadora y simplemente usarlo. Eso es interesante para mí. Sí, eso es realmente interesante. De hecho. Verdacho se puede utilizar como una herramienta contra los cortes de internet o eventos similares. Otra cosa. Así que cuando hablamos del caso del repositorio privado, creo que nos hemos centrado mucho en la confiabilidad y el almacenamiento en caché y demás. Pero por supuesto, hay otra forma de trabajar con un repositorio privado donde puedes tener un repositorio privado dentro de tu empresa donde hayas publicado exclusivamente tu código privado y luego puedes construir a partir de eso. ¿Verdacho permite esto? ¿Hay muchos usuarios de esto? ¿Qué piensas? ¿Te refieres a alojar un registro dentro de tu empresa? Sí, y alojar paquetes locales de código cerrado, para que no tengas que importarlos usando enlaces de Git y demás, y en su lugar puedas simplemente clonar en tu privado... Verdacho solo admite dependencias con versionado semántico, por lo que no... quiero decir no puedes descargar un repositorio de Git o algo así. Eso no funciona. Hay otras soluciones como en package.com, creo. Es como un registro pero es como un CDN. He recibido solicitudes de personas, pero eso no es lo que hace Verdacho. Sí, quiero decir que puedes tener tu registro dentro de tu empresa ya sea para almacenamiento en caché o para alojar tus privados, por ejemplo, como un sistema de design que no deseas publicar externamente y generalmente tienes este tipo de cosas que puedes usar en varios proyectos. Entonces necesitas el registro de alguna manera porque necesitas publicar paquetes allí. De acuerdo, eso fue genial, muchas gracias Juan. Fue un placer escuchar tu charla y fue aún más interesante interactuar contigo. Bueno, desafortunadamente se nos acabó el tiempo, pero si aún no has terminado de escuchar sobre Verdacho, puedes unirte al chat especial. Entonces, Juan, ¿estarás en el chat especial, verdad? Claro, estaré allí. De acuerdo, genial. Bueno, en ese caso puedes unirte allí y podemos pasar a la siguiente parte. Gracias. Fue muy agradable tenerte aquí. Muchas gracias. Muchas gracias por tenerme aquí.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Node Congress 2022Node Congress 2022
26 min
It's a Jungle Out There: What's Really Going on Inside Your Node_Modules Folder
Top Content
Do you know what’s really going on in your node_modules folder? Software supply chain attacks have exploded over the past 12 months and they’re only accelerating in 2022 and beyond. We’ll dive into examples of recent supply chain attacks and what concrete steps you can take to protect your team from this emerging threat.
You can check the slides for Feross' talk here.
Node Congress 2022Node Congress 2022
34 min
Out of the Box Node.js Diagnostics
In the early years of Node.js, diagnostics and debugging were considerable pain points. Modern versions of Node have improved considerably in these areas. Features like async stack traces, heap snapshots, and CPU profiling no longer require third party modules or modifications to application source code. This talk explores the various diagnostic features that have recently been built into Node.
You can check the slides for Colin's talk here. 
JSNation 2023JSNation 2023
22 min
ESM Loaders: Enhancing Module Loading in Node.js
Native ESM support for Node.js was a chance for the Node.js project to release official support for enhancing the module loading experience, to enable use cases such as on the fly transpilation, module stubbing, support for loading modules from HTTP, and monitoring.
While CommonJS has support for all this, it was never officially supported and was done by hacking into the Node.js runtime code. ESM has fixed all this. We will look at the architecture of ESM loading in Node.js, and discuss the loader API that supports enhancing it. We will also look into advanced features such as loader chaining and off thread execution.
JSNation Live 2021JSNation Live 2021
19 min
Multithreaded Logging with Pino
Top Content
Almost every developer thinks that adding one more log line would not decrease the performance of their server... until logging becomes the biggest bottleneck for their systems! We created one of the fastest JSON loggers for Node.js: pino. One of our key decisions was to remove all "transport" to another process (or infrastructure): it reduced both CPU and memory consumption, removing any bottleneck from logging. However, this created friction and lowered the developer experience of using Pino and in-process transports is the most asked feature our user.In the upcoming version 7, we will solve this problem and increase throughput at the same time: we are introducing pino.transport() to start a worker thread that you can use to transfer your logs safely to other destinations, without sacrificing neither performance nor the developer experience.

Workshops on related topic

Node Congress 2023Node Congress 2023
109 min
Node.js Masterclass
Top Content
Workshop
Have you ever struggled with designing and structuring your Node.js applications? Building applications that are well organised, testable and extendable is not always easy. It can often turn out to be a lot more complicated than you expect it to be. In this live event Matteo will show you how he builds Node.js applications from scratch. You’ll learn how he approaches application design, and the philosophies that he applies to create modular, maintainable and effective applications.

Level: intermediate
JSNation 2023JSNation 2023
104 min
Build and Deploy a Backend With Fastify & Platformatic
WorkshopFree
Platformatic allows you to rapidly develop GraphQL and REST APIs with minimal effort. The best part is that it also allows you to unleash the full potential of Node.js and Fastify whenever you need to. You can fully customise a Platformatic application by writing your own additional features and plugins. In the workshop, we’ll cover both our Open Source modules and our Cloud offering:- Platformatic OSS (open-source software) — Tools and libraries for rapidly building robust applications with Node.js (https://oss.platformatic.dev/).- Platformatic Cloud (currently in beta) — Our hosting platform that includes features such as preview apps, built-in metrics and integration with your Git flow (https://platformatic.dev/). 
In this workshop you'll learn how to develop APIs with Fastify and deploy them to the Platformatic Cloud.
Node Congress 2023Node Congress 2023
63 min
0 to Auth in an Hour Using NodeJS SDK
WorkshopFree
Passwordless authentication may seem complex, but it is simple to add it to any app using the right tool.
We will enhance a full-stack JS application (Node.JS backend + React frontend) to authenticate users with OAuth (social login) and One Time Passwords (email), including:- User authentication - Managing user interactions, returning session / refresh JWTs- Session management and validation - Storing the session for subsequent client requests, validating / refreshing sessions
At the end of the workshop, we will also touch on another approach to code authentication using frontend Descope Flows (drag-and-drop workflows), while keeping only session validation in the backend. With this, we will also show how easy it is to enable biometrics and other passwordless authentication methods.
Table of contents- A quick intro to core authentication concepts- Coding- Why passwordless matters
Prerequisites- IDE for your choice- Node 18 or higher
JSNation Live 2021JSNation Live 2021
156 min
Building a Hyper Fast Web Server with Deno
WorkshopFree
Deno 1.9 introduced a new web server API that takes advantage of Hyper, a fast and correct HTTP implementation for Rust. Using this API instead of the std/http implementation increases performance and provides support for HTTP2. In this workshop, learn how to create a web server utilizing Hyper under the hood and boost the performance for your web apps.
React Summit 2022React Summit 2022
164 min
GraphQL - From Zero to Hero in 3 hours
Workshop
How to build a fullstack GraphQL application (Postgres + NestJs + React) in the shortest time possible.
All beginnings are hard. Even harder than choosing the technology is often developing a suitable architecture. Especially when it comes to GraphQL.
In this workshop, you will get a variety of best practices that you would normally have to work through over a number of projects - all in just three hours.
If you've always wanted to participate in a hackathon to get something up and running in the shortest amount of time - then take an active part in this workshop, and participate in the thought processes of the trainer.
TestJS Summit 2023TestJS Summit 2023
78 min
Mastering Node.js Test Runner
Workshop
Node.js test runner is modern, fast, and doesn't require additional libraries, but understanding and using it well can be tricky. You will learn how to use Node.js test runner to its full potential. We'll show you how it compares to other tools, how to set it up, and how to run your tests effectively. During the workshop, we'll do exercises to help you get comfortable with filtering, using native assertions, running tests in parallel, using CLI, and more. We'll also talk about working with TypeScript, making custom reports, and code coverage.