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

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2025
November 18 - 21, 2025
New York, US & Online
The biggest React conference in the US
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit US 2025
React Summit US 2025
November 18 - 21, 2025. New York, US & Online
Learn more
Bookmark
SlidesGithubProject website
Rate this content

Verdaccio es un registro privado y proxy de código abierto y ligero hecho en JavaScript con una configuración totalmente 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í.

This talk has been presented at Node Congress 2022, check out the latest edition of this JavaScript Conference.

FAQ

Para mejorar la experiencia sin conexión en Verdash, puedes deshabilitar la propiedad proxy en la configuración. Esto permite que Verdash funcione sin buscar versiones en registros remotos cuando no hay conexión disponible.

Verdash es un registro privado y proxy de Node.js que permite alojar y publicar paquetes privados de Node.js. Es completamente opcional en su configuración y es compatible con cualquier gestor de paquetes.

Para instalar Verdash, necesitas instalar el paquete globalmente en tu sistema. Esto se realiza simplemente con un comando de instalación global sin pasos adicionales.

Después de instalar Verdash, debes ejecutar el comando Verdash para iniciar el registro. Este comando te proporcionará una interfaz de usuario para navegar por paquetes privados y dependencias.

Para publicar un paquete en Verdash, primero debes iniciar sesión usando el comando 'login'. Luego, si estás utilizando npm Workspaces, puedes publicar varios paquetes al mismo tiempo usando el comando slack workspaces.

Si intentas publicar una versión de un paquete que ya existe en Verdash, recibirás un error 409. Para evitar esto, puedes agregar un sufijo a la versión del paquete.

Usar un registro privado como Verdash en la integración continua permite almacenar en caché cualquier dependencia y versión según la demanda, mejorando la disponibilidad y la velocidad de las compilaciones durante interrupciones de servicio en registros públicos.

Para asegurar Verdash, es recomendable aislar tus paquetes privados usando ámbitos y eliminar el proxy en la configuración para evitar la obtención de fuentes externas para actualizaciones. Además, se debe configurar correctamente para prevenir la sustitución de paquetes privados por paquetes maliciosos.

Juan Picado
Juan Picado
32 min
18 Feb, 2022

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Verdash es un registro privado y proxy ligero de Node.js 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 almacenar en caché las dependencias y las versiones. Las consideraciones de seguridad son importantes, y Verdash proporciona características de seguridad como la limitación de la tasa. Se puede utilizar como un registro para proyectos de código abierto y ofrece opciones de flexibilidad y personalización.

1. Introduction to Verdash

Short description:

Hola, soy Juan Picado. Te mostraré cinco maneras de usar Verdash para un registro privado y proxy de Node.js. Verdash es un registro privado y proxy ligero de Node.js que te permite alojar y publicar paquetes privados. Instala Verdash globalmente, 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 manera.

Hola, gracias por unirte a mi charla. Mi nombre es Juan Picado. Estoy aquí para mostrarte cinco maneras de aprovechar Verdash para un registro privado y proxy de Node.js. Así que, comencemos.

Primero que nada, algo sobre mí. Mi nombre es Juan Picado. Soy ingeniero frontend senior en Mobility Dare, es una marca de Ativinta. Estoy basado en Berlín. Y también paso parte de mi tiempo haciendo Open Source, principalmente manteniendo el proyecto Verdash. Así que, si no lo conoces, sabrás más en los próximos 20 minutos y espero que te guste.

Así que, comencemos. Somos desarrolladores de Node.js y también desarrolladores de JavaScript. Así que, puedo imaginar que ya has publicado un paquete y si no lo has hecho aún, entonces disfrutarás esta charla porque es muy, muy sencillo hacerlo localmente. Verdash es un registro privado y proxy ligero de Node.

js, con configuración completamente opcional, que te permite simplemente alojar y publicar paquetes privados de Node.js. Y es compatible con cualquier gestor de paquetes. Así que, este diagrama aquí describe un simple viaje 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 un caché local. Y este caché local realmente beneficia. Quiero mostrarte cómo usarlo en tu proyecto. Así que, primero que nada, 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 tienes que hacer es simplemente ejecutar el comando Verdash. Sí, eso es todo. Así que, tienes un registro que está funcionando con una interfaz de usuario para navegar, no solo paquetes privados, sino también 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 entender he preparado cinco maneras básicas, y cómo Verdash puede ser realmente útil para cualquier desarrollador de JavaScript hoy en día. Así que, comencemos con la primera.

2. Publishing a Package with npm Workspaces

Short description:

Que es desarrollo personal. Vamos a publicar un paquete usando npm workspaces. La estructura del proyecto consta de 5 módulos, con un módulo haciendo 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.

Que 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 que nada 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 tiene referencia a otros dentro. Veremos por qué estoy haciendo esto cuando publiquemos y te lo muestre en el mismo.

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 ul 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 solo 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 está reaccionando a cualquier comando que estés escribiendo. Esto es porque el gestor de paquetes es grande con la API del registro.

Así que ahora publiquemos un paquete. Y si has usado workspaces en npm puedes publicar varios paquetes al mismo tiempo solo usando estos slack workspaces. Y esto es lo que vamos a hacer y acaba de suceder. Sí, lo hicimos. Así que tenemos paquetes en el registro. Así que vamos a ver cómo se ven estos paquetes en el registro. Y esta es la interfaz de usuario. Puedes cambiar entre el modo oscuro. Y aquí tenemos los cinco paquetes. Genial. Y estas son las dependencias que te mostré antes. Así que puedes simplemente navegar a través de ellas y ver quién tiene las dependencias de quién.

3. Publishing Packages and Handling Conflicts

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, obtendrás un error 409. Para evitar esto, añade un sufijo a la versión. Berdacho fusiona tu versión local con las versiones ascendentes. Publicar 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.

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, es decir, 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 y Berdacho siempre buscará esta versión si ya existe y si la condición es verdadera, entonces obtendrás un error 409. Esto es bastante común si deseas parchear una versión pública, ¿verdad?

Así que para evitar esto, puedes simplemente añadir un sufijo a la versión. Y tu versión no se perderá una vez que Berdacho actualice nuevas versiones porque Berdacho fusiona lo que tienes localmente con lo que tienes de los upstreams. Así que hagamos una demostración rápida también solo para mostrarte los beneficios y cómo podemos realmente resolver esto con este paquete React. Veamos si encuentro el proyecto... Ah, aquí está. Así que aquí podemos ver esta versión, es la actual en npmjs. Ejecutemos Berdacho de nuevo. Ya estamos conectados, así que no necesitamos iniciar sesión de nuevo. Y probemos a publicar esta versión con la bandera registry. ¡Boom! ¡Sí! Conflicto de publicación. Así que para resolver esto puedes cambiar la versión manualmente, pero es mucho más fácil si usas un parche de versión. Y en este caso no estoy usando la versión de Github porque acabo de clonar este proyecto, no quiero crear una etiqueta local en mi proyecto. Así que solo 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. Solo publica y ahí está, así que si volvemos al registro de nuevo 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 la versión para que pueda ver las que vienen de afuera más la que acabo de publicar. Así que continuemos con la siguiente diapositiva.

Así que 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 deseas publicar paquetes, y esta es la razón por la que Vertel existe, porque puedes publicar paquetes en cualquier lugar, entonces necesitas habilitar la publicación sin conexión en la configuración. Esto no es por defecto porque las razones son porque el registro siempre busca versiones en remotos. Si no hay conexión, la publicación fallará. También puedes mejorar la experiencia sin conexión eliminando la propiedad proxy en el archivo de configuración. Puedes ver en la diapositiva. Verás más sobre esto en las siguientes diapositivas.

4. Project Productivity and Continuous Integration

Short description:

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

Puedes ver en la diapositiva. Verás más sobre esto en las siguientes diapositivas. Hay una razón para eso. A continuación está la productividad del proyecto y la integración continua en registros privados.

La mayoría de los paquetes públicos que usamos hoy en día se están publicando a través del registro privado, pero también llaman desde otros registros. Todos estos registros son servicios que requieren alta disponibilidad, pero esto no es el 100% del tiempo, porque ocurren caídas públicas, y entonces debes estar preparado para ello. En esas situaciones es cuando las capacidades de los registros privados y los proxies son una clave fundamental de tu pipeline de desarrollo. Porque tener un registro proxy entre tu pipeline y tus servicios públicos evitará que tus equipos o tus compilaciones dejen de funcionar mientras ocurre una caída.

Verdash tendrá esta capacidad de serie, almacenará en caché cualquier dependencia y versión por demanda, así que la próxima vez que se solicite servirá la que está en caché. Porque en el entorno de integración continua las compilaciones se ejecutarán múltiples veces en la misma pull request cuando realices cambios en tu repositorio, lo que implica que el manifiesto del paquete para un paquete público se descargará una y otra vez. Hay una caché predeterminada en Verdash de 2 minutos, pero puedes aumentar la caché simplemente diciendo al registro que no necesito una nueva versión cada 2 minutos, tal vez 10 minutos está bien para mí. Esta es una muy buena práctica porque acelerarás tus compilaciones ya que el registro no necesitará ir por cada solicitud afuera para preguntar si tienes nuevos cambios. Además, si la red no está funcionando bien, también puedes aumentar los fallos máximos en la configuración.

5. Security Considerations for Registries

Short description:

La seguridad es un tema crucial que debe abordarse tanto del lado del cliente como del servidor. Una mala configuración en los registros puede llevar a que paquetes privados sean reemplazados por maliciosos en registros públicos. Es importante configurar adecuadamente el registro y aislar los paquetes privados usando scopes. Si se usa Verdacho, se recomienda eliminar el proxy en la configuración para paquetes privados.

Y el tercer tema es la seguridad porque la seguridad es un tema que debe abordarse desde 2 ángulos. Primero, del lado del cliente porque necesitas usar las configuraciones correctas en el Package Manager. Puedes consultar más sobre esto en el virtualwebsite. También tengo un enlace en las 2 diapositivas adelante. Pero también desde el lado del servidor porque se plantea por sí mismo y ahora elaboraré un poco más porque hay una razón. Y si no recuerdas lo que sucedió hace 1 año, déjame recapitular rápidamente. Un investigador de seguridad descubrió que una mala configuración en los registros podría ayudar a que paquetes destinados a ser privados sean reemplazados por paquetes maliciosos, que son publicados en registros públicos con el mismo nombre. Esto podría comprometer la seguridad. Esta historia es demasiado larga, pero aquí dejo un buen artículo donde puedes leer más sobre ello. Solo es un recordatorio de que un registro es una gran ventaja y te brinda una capa extra de seguridad. Pero también es una gran responsabilidad porque debe estar correctamente configurado. Hay dos consejos reales aquí. Primero, aísla tus paquetes privados usando scopes. Usualmente 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 control total. En caso de que no hayas configurado correctamente el registro localmente, al menos posees el scope afuera. La segunda razón es, especialmente si estás usando Verdacho, por favor elimina el proxy en la configuración para evitar que el registro busque fuentes externas para actualizaciones. Esto es altamente recomendable para paquetes con scope. Si tienes la intención de ser privado, especialmente si estás usando Verdacho.

6. Verdacho Security and Package Testing

Short description:

La última versión de Verdacho incluye una nueva característica de seguridad: limitación de tasa. Esta característica se puede aplicar a los endpoints web y a los endpoints de seguridad como el inicio de sesión y el 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 probar y usar un registro. Veamos un ejemplo de cómo arreglar un paquete roto en un proyecto de GitHub usando Verdacho y GitHub Actions.

Así que las últimas versiones de Verdacho, incluyen una nueva característica de seguridad, que es la limitación de tasa. En este punto, puedes agregar limitación de tasa a dos áreas, que son los endpoints web, los endpoints de seguridad, que son el inicio de sesión y el cambio de contraseña. Con eso, vas a usar la posibilidad de un ataque de denegación de servicio, que estos son puntos clave en los endpoints. Así que por defecto están realmente configurados para un número muy bajo de solicitudes, pero puedes cambiar esto. Así que recomiendo totalmente usar esta característica si no has notado que ya existe.

Así que, las pruebas de extremo a extremo, que son mis favoritas, donde la integridad de tus paquetes es cuando estás publicando un paquete y la estructura de funcionalidad de estos modelos no se ve afectada cuando es consumida por los usuarios. 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 tratando de enviar un paquete common-JS, o tal vez olvidaste el módulo si estás tratando de usar un módulo JSON, o tal vez olvidaste los patrones correctos en la propiedad de archivo en el paquete. Además, podrías configurar 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 puede ser detectado solo al publicar. Para eso, necesitas un registro. No puedes publicar instantáneas todo el tiempo en el público, especialmente si son paquetes privados, así que recomiendo probar publicar tus paquetes en cada pull request, al igual que un storybook está haciendo 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, solo imprime hola mundo en la consola, y usa github actions, docker y node js para ejecutar pequeñas pruebas de extremo a extremo. Así que, como observas, esta es una vista de mi proyecto de github, donde mis pruebas están rotas en master. Así que, veamos rápidamente cuál es la razón, y arreglémoslo en un momento. Así que, este es mi proyecto, y si ves, hay algo mal en la configuración, en el paquete. Así que, veamos por un segundo qué podría ser, y parece que es el archivo bin. Así que, este archivo no existe en la raíz, no existe. Entonces, ¿qué podemos hacer para arreglarlo? Bueno, solo usar el nombre correcto, ¿verdad? Y, realmente vamos a comprometer este archivo porque si... y esto debería realmente solucionar el problema. Así que, vamos a comprometer esto. No, no quiero romper master, quiero arreglar master. Sí, vamos a enviar estos cambios y luego mientras GitHub ejecuta la acción, te mostraré cómo estoy realmente haciendo esta prueba. Así que, si no estás familiarizado con GitHub Actions, es realmente simple, recomendaría totalmente usarlos. Aquí tenemos servicio. 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 dos puertos, quiero decir un puerto, que es el mismo. Para el S73, con esto puedes usar el registro en todos los pasos a continuación.

7. Publishing and Testing Packages

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 master está verde nuevamente.

Así que, primero solo estoy iniciando 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 solo instalo globalmente el paquete. Cuando estás instalando 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 usa SpanSync. Ejecutando el comando, se supone que esté disponible en el contexto global. Este será un primer punto de interrupción si no hay comando. Esta prueba va a fallar. Luego va a capturar 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 master arreglado está funcionando perfectamente. Si vemos la acción dentro, podemos ver que esto realmente pasó correctamente. Perfecto. Y el master está verde nuevamente. Súper bien. Así que volvamos a las diapositivas.

8. Using Verdacho as a Registry

Short description:

Hay muchos ejemplos de proyectos de código abierto que se pueden usar como recurso de aprendizaje. Angular CLI es uno de esos ejemplos, 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 usar 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.

Hay muchos ejemplos en 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 usando 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, todos los entornos offline y, en general, bajo costo. Porque esto es lo que estamos haciendo en la organización Verdacho, estamos usando nuestro propio registro y nuestras compilaciones.

Hemos estado ejecutando nuestro propio registro durante tres años, lo que cuesta alrededor de $60 por año. Y tenemos miles de compilaciones cada mes, incluyendo todas las dependencias de todas estas personas que contribuyen, lo que es un montón de solicitudes al registro cada día. Y no hemos tenido la necesidad de escalar hasta ahora porque ha estado funcionando muy bien con la configuración predeterminada. Pero esta es nuestra propia configuración personal. Podrías tener diferentes requisitos, y Verdacho es flexible. Podrías necesitar un almacenamiento diferente. Por ejemplo, podrías usar S3 en Amazon Web Services o tu propia nube como Minio. Podrías necesitar tu propio proveedor de autenticación o tal vez cambiar la interfaz completamente. Verdacho también permite middleware porque es express en este punto. Este es un ejemplo. Estoy usando MPM Audit. Estamos aplicando usando plugins dando soporte a este comando. Así que podrías querer extender tu propio registro. Pero sí, esto también podría incluir desarrollo personal, creando tus propios plugins.

Así que sí, eso es todo de 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 que este proyecto sea una gran alternativa. Y así, en nombre de todos los colaboradores, gracias por ver mi charla. Y espero que te haya gustado y hayas aprendido algo hoy. Por favor, 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:

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

Al observar los resultados del pool, ¿qué piensas? Así que un tercio de todos los asistentes, bueno, se preocupan por alojar un registro, pero también hay muchas respuestas interesantes como la seguridad. ¿Qué piensas sobre eso? De hecho, miré los resultados, coincide con mis expectativas. Por lo general, sí, el nombre de la descripción del proyecto indica, sí, puedes alojar un registro. Este es el caso de uso más común. Pero tiene varios, como mencioné en el libro. Y las pruebas Antoine son una tendencia, que se está volviendo popular. Viste en la presentación, mencioné algunos proyectos, pero veo muchos, muchos proyectos, que tienen monolibos, que se preocupan por lo que están enviando. Las pruebas Antoine son 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 para otro, que estaba más destinado a ser para desarrollo personal. Este es quizás el menos conocido. Puedes usar un registro en tu computadora. Y lo que me sorprende es la integración continua, porque como mencioné, una de las diapositivas generalmente no se usa. Confiamos mucho en los servicios y esto es peligroso. Así que sí, eso es bastante genial. Gracias.

Bueno, tenemos algunas preguntas, si no te importa. En primer lugar, esta es también mi pregunta, y creo que está en la mente de muchas personas. ¿Cuál es la mejor manera de contribuir a Vodaccio? ¿Cuál es la mejor manera de involucrarse? Bueno, solo la disposición de aprender. Esa es la más importante. Así es como comencé en Vodaccio. Sí, quiero aprender Node.js y en el repositorio, tenemos varias formas en las que puedes ayudar. Primero, si eres solo un principiante, puedes comenzar corrigiendo tipos que estamos migrando. Tenemos nuestra hoja de ruta en el repositorio, que está fijada, y puedes encontrarla fácilmente en los problemas y discusiones. Y hay una descripción de lo que puedes hacer. Ya sea que seas un desarrollador de Node.js puramente y quieras aprender algo o mejorar el código, tienes los pasos para hacerlo. Si te gusta más el front-end, tenemos una UI, que está basada en React, y Material UI, que también necesita algo de ayuda allí. Y sí, puedes tener buenas características. Y si no eres un programador, tal vez quieras ayudar con las traducciones.

Verdacio Features and Comparison

Short description:

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

Además, puedes ayudar a traducir el software a varios idiomas. Ya tenemos como 15 idiomas en la UI y también en la documentación. Y sí, también puedes ir al chat y ayudar a otros a usar Bellagio. Esa es otra manera. Muchas gracias. Eso es muy genial.

Otra pregunta es, ¿puede Verdacio usarse para hacer proxy no solo de uno, sino de múltiples registros? Sí. Cuando usas Verdacio por primera vez y estás instalando paquetes a través de él, sí, 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 del público del 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, en tu corporación puedes configurar credenciales y acceder a varios registros. Hay una de las características que no es muy conocida. Es como si pudieras definir un paquete específico, por ejemplo, React. Imaginemos. Y puedes pedir React en tu registro privado. Y puedes definir una regla, como, está bien, si no existe en el privado, entonces lo encontraré 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 podrían estar familiarizados con otras iniciativas para crear repositorios no-npm. Un ejemplo sería Entropec, del cual la gente podría estar al tanto. ¿Cómo crees que Vodaccio se compara o tal vez se diferencia de esos proyectos? ¿Cuál? ¿El Entropec que mencionaste? Sí, Entropec. ¿O hay tal vez algunos otros proyectos de los que estés al tanto que crees que son diferentes? No hay muchos en código abierto, desafortunadamente. Me gustaría ver más. Pero la mayoría de estos, Entropec fue una idea que todavía está abierta, pero parece que no hay mucho desarrollo. Pero fue una idea para crear un registro, un registro distribuido. Sí, así que desafortunadamente no hay mucho desarrollo allí, pero la idea era interesante.

Registros Privados y Aprendizaje Offline

Short description:

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

Y aparte de eso, solo hay servicios. Hay algunas empresas que están creando registros, posibilidades para paquetes privados. Pero sí, quiero decir que necesitas pagar por ellos. Algunos tienen una prueba gratuita, que puedes usar. Pero la principal diferencia es que, aún son todos servicios, ¿verdad? Entonces necesitas internet y básicamente necesitas internet y puedo decirte, usualmente la gente se acerca a mí para preguntarme como, oh, vivo en esta área o vivo en este país, que no está permitido usar el servicio o lo que sea. Y mi única forma de aprender Node.js es porque puedo instalarlo en mi computadora y simplemente usarlo. Esto es interesante para mí. Sí, eso es realmente interesante. De hecho. Eso Furtaccio puede ser utilizado como una herramienta contra los cortes de internet o eventos similares. Otra cosa. Entonces, cuando hablamos sobre el caso del repositorio privado, creo que nos enfocamos mucho en la fiabilidad y el almacenamiento en caché y así sucesivamente. Pero por supuesto, hay otra forma de trabajar con un repositorio privado donde puedes tener un repositorio privado dentro de tu empresa donde has publicado exclusivamente tu código privado y luego puedes construir a partir de eso. ¿Permite Furtaccio 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 por así decirlo, para que no tengas que importarlos usando enlaces Git y así sucesivamente, y en su lugar puedes simplemente clonar en tu privado... Furtaccio solo admite dependencias con versionado semántico, por lo que no... Quiero decir no puedes descargar un repositorio Git o algo así. Esto 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 esto no es lo que hace Furtaccio. 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 diseño que no quieres publicar fuera y usualmente tienes este tipo de cosas que puedes usar en varios proyectos. Entonces necesitas el registro de alguna manera porque necesitas publicar paquetes allí. Okay, eso fue genial, muchas gracias Juan. Fue un placer escuchar tu charla y fue aún más interesante interactuar contigo. Bueno, desafortunadamente nos hemos quedado sin tiempo pero si aún no has terminado de escuchar sobre Portacio puedes unirte a la sala de chat especial. Entonces Juan, ¿estarás en el chat especial, verdad? Claro, lo estaré. Okay, genial. Bueno, en ese caso puedes unirte allí y podemos pasar a la siguiente parte. Gracias. Fue realmente agradable tenerte. Muchas gracias. Muchas gracias. 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

Es una jungla ahí fuera: ¿Qué está pasando realmente dentro de tu carpeta Node_Modules?
Node Congress 2022Node Congress 2022
26 min
Es una jungla ahí fuera: ¿Qué está pasando realmente dentro de tu carpeta Node_Modules?
Top Content
The talk discusses the importance of supply chain security in the open source ecosystem, highlighting the risks of relying on open source code without proper code review. It explores the trend of supply chain attacks and the need for a new approach to detect and block malicious dependencies. The talk also introduces Socket, a tool that assesses the security of packages and provides automation and analysis to protect against malware and supply chain attacks. It emphasizes the need to prioritize security in software development and offers insights into potential solutions such as realms and Deno's command line flags.
Cargadores ESM: Mejorando la carga de módulos en Node.js
JSNation 2023JSNation 2023
22 min
Cargadores ESM: Mejorando la carga de módulos en Node.js
Top Content
ESM Loaders enhance module loading in Node.js by resolving URLs and reading files from the disk. Module loaders can override modules and change how they are found. Enhancing the loading phase involves loading directly from HTTP and loading TypeScript code without building it. The loader in the module URL handles URL resolution and uses fetch to fetch the source code. Loaders can be chained together to load from different sources, transform source code, and resolve URLs differently. The future of module loading enhancements is promising and simple to use.
Hacia una Biblioteca Estándar para Runtimes de JavaScript
Node Congress 2022Node Congress 2022
34 min
Hacia una Biblioteca Estándar para Runtimes de JavaScript
Top Content
There is a need for a standard library of APIs for JavaScript runtimes, as there are currently multiple ways to perform fundamental tasks like base64 encoding. JavaScript runtimes have historically lacked a standard library, causing friction and difficulty for developers. The idea of a small core has both benefits and drawbacks, with some runtimes abusing it to limit innovation. There is a misalignment between Node and web browsers in terms of functionality and API standards. The proposal is to involve browser developers in conversations about API standardization and to create a common standard library for JavaScript runtimes.
Diagnostics de Node.js listos para usar
Node Congress 2022Node Congress 2022
34 min
Diagnostics de Node.js listos para usar
This talk covers various techniques for getting diagnostics information out of Node.js, including debugging with environment variables, handling warnings and deprecations, tracing uncaught exceptions and process exit, using the v8 inspector and dev tools, and generating diagnostic reports. The speaker also mentions areas for improvement in Node.js diagnostics and provides resources for learning and contributing. Additionally, the responsibilities of the Technical Steering Committee in the TS community are discussed.
El Estado de Node.js 2025
JSNation 2025JSNation 2025
30 min
El Estado de Node.js 2025
The speaker covers a wide range of topics related to Node.js, including its resilience, popularity, and significance in the tech ecosystem. They discuss Node.js version support, organization activity, development updates, enhancements, and security updates. Node.js relies heavily on volunteers for governance and contribution. The speaker introduces an application server for Node.js enabling PHP integration. Insights are shared on Node.js downloads, infrastructure challenges, software maintenance, and the importance of update schedules for security.
Compatibilidad con Node.js en Deno
Node Congress 2022Node Congress 2022
34 min
Compatibilidad con Node.js en Deno
Deno aims to provide Node.js compatibility to make migration smoother and easier. While Deno can run apps and libraries offered for Node.js, not all are supported yet. There are trade-offs to consider, such as incompatible APIs and a less ideal developer experience. Deno is working on improving compatibility and the transition process. Efforts include porting Node.js modules, exploring a superset approach, and transparent package installation from npm.

Workshops on related topic

Masterclass de Node.js
Node Congress 2023Node Congress 2023
109 min
Masterclass de Node.js
Top Content
Workshop
Matteo Collina
Matteo Collina
¿Alguna vez has tenido dificultades para diseñar y estructurar tus aplicaciones Node.js? Construir aplicaciones que estén bien organizadas, sean probables y extensibles no siempre es fácil. A menudo puede resultar ser mucho más complicado de lo que esperas. En este evento en vivo, Matteo te mostrará cómo construye aplicaciones Node.js desde cero. Aprenderás cómo aborda el diseño de aplicaciones y las filosofías que aplica para crear aplicaciones modulares, mantenibles y efectivas.

Nivel: intermedio
Construir y Desplegar un Backend Con Fastify & Platformatic
JSNation 2023JSNation 2023
104 min
Construir y Desplegar un Backend Con Fastify & Platformatic
Top Content
WorkshopFree
Matteo Collina
Matteo Collina
Platformatic te permite desarrollar rápidamente GraphQL y REST APIs con un esfuerzo mínimo. La mejor parte es que también te permite desatar todo el potencial de Node.js y Fastify siempre que lo necesites. Puedes personalizar completamente una aplicación de Platformatic escribiendo tus propias características y plugins adicionales. En la masterclass, cubriremos tanto nuestros módulos de Open Source como nuestra oferta en la Nube:- Platformatic OSS (open-source software) — Herramientas y bibliotecas para construir rápidamente aplicaciones robustas con Node.js (https://oss.platformatic.dev/).- Platformatic Cloud (actualmente en beta) — Nuestra plataforma de alojamiento que incluye características como aplicaciones de vista previa, métricas integradas e integración con tu flujo de Git (https://platformatic.dev/). 
En esta masterclass aprenderás cómo desarrollar APIs con Fastify y desplegarlas en la Platformatic Cloud.
Construyendo un Servidor Web Hiper Rápido con Deno
JSNation Live 2021JSNation Live 2021
156 min
Construyendo un Servidor Web Hiper Rápido con Deno
Workshop
Matt Landers
Will Johnston
2 authors
Deno 1.9 introdujo una nueva API de servidor web que aprovecha Hyper, una implementación rápida y correcta de HTTP para Rust. El uso de esta API en lugar de la implementación std/http aumenta el rendimiento y proporciona soporte para HTTP2. En este masterclass, aprende cómo crear un servidor web utilizando Hyper en el fondo y mejorar el rendimiento de tus aplicaciones web.
0 a Auth en una Hora Usando NodeJS SDK
Node Congress 2023Node Congress 2023
63 min
0 a Auth en una Hora Usando NodeJS SDK
WorkshopFree
Asaf Shen
Asaf Shen
La autenticación sin contraseña puede parecer compleja, pero es fácil de agregar a cualquier aplicación utilizando la herramienta adecuada.
Mejoraremos una aplicación JS de pila completa (backend de Node.JS + frontend de React) para autenticar usuarios con OAuth (inicio de sesión social) y contraseñas de un solo uso (correo electrónico), incluyendo:- Autenticación de usuario - Administrar interacciones de usuario, devolver JWT de sesión / actualización- Gestión y validación de sesiones - Almacenar la sesión para solicitudes de cliente posteriores, validar / actualizar sesiones
Al final del masterclass, también tocaremos otro enfoque para la autenticación de código utilizando Flujos Descope en el frontend (flujos de arrastrar y soltar), manteniendo solo la validación de sesión en el backend. Con esto, también mostraremos lo fácil que es habilitar la biometría y otros métodos de autenticación sin contraseña.
Tabla de contenidos- Una breve introducción a los conceptos básicos de autenticación- Codificación- Por qué importa la autenticación sin contraseña
Requisitos previos- IDE de tu elección- Node 18 o superior
GraphQL: De Cero a Héroe en 3 horas
React Summit 2022React Summit 2022
164 min
GraphQL: De Cero a Héroe en 3 horas
Workshop
Pawel Sawicki
Pawel Sawicki
Cómo construir una aplicación GraphQL fullstack (Postgres + NestJs + React) en el menor tiempo posible.
Todos los comienzos son difíciles. Incluso más difícil que elegir la tecnología es desarrollar una arquitectura adecuada. Especialmente cuando se trata de GraphQL.
En este masterclass, obtendrás una variedad de mejores prácticas que normalmente tendrías que trabajar en varios proyectos, todo en solo tres horas.
Siempre has querido participar en un hackathon para poner algo en funcionamiento en el menor tiempo posible, entonces participa activamente en este masterclass y únete a los procesos de pensamiento del instructor.
Dominando Node.js Test Runner
TestJS Summit 2023TestJS Summit 2023
78 min
Dominando Node.js Test Runner
Workshop
Marco Ippolito
Marco Ippolito
Node.js test runner es moderno, rápido y no requiere bibliotecas adicionales, pero entenderlo y usarlo bien puede ser complicado. Aprenderás a utilizar Node.js test runner a su máximo potencial. Te mostraremos cómo se compara con otras herramientas, cómo configurarlo y cómo ejecutar tus pruebas de manera efectiva. Durante la masterclass, haremos ejercicios para ayudarte a sentirte cómodo con el filtrado, el uso de afirmaciones nativas, la ejecución de pruebas en paralelo, el uso de CLI y más. También hablaremos sobre trabajar con TypeScript, hacer informes personalizados y la cobertura de código.