Yarn 4 - Gestión Moderna de Paquetes

Rate this content
Bookmark

Yarn 4 es la próxima versión mayor de tu gestor de paquetes JavaScript favorito, con un enfoque en rendimiento, seguridad y experiencia del desarrollador. A lo largo de esta charla repasaremos sus nuevas características, cambios importantes y compartiremos nuestros planes a largo plazo para el proyecto.

Si solo has oído hablar de Yarn sin probarlo aún, si no estás seguro de por qué la gente hace tanto alboroto con los gestores de paquetes, si te preguntas cómo tu gestor de paquetes puede hacer tu trabajo más sencillo y seguro, ¡esta es la charla perfecta para ti!

FAQ

Yarn es un gestor de paquetes similar a NPM que facilita la instalación de paquetes y la resolución de dependencias en sistemas de desarrollo. Ofrece consistencia, estabilidad, buen rendimiento y modernidad. A diferencia de NPM, que es propiedad de GitHub, Yarn es completamente de código abierto, lo que influye en su modelo de gobernanza y mantenibilidad.

Yarn se destaca por su estabilidad, mantenibilidad, modernidad y seguridad. Permite una gestión de paquetes determinista y predecible, tiene un núcleo modular que admite plugins y comandos personalizados, y está enfocado en mejorar la seguridad contra tipos específicos de ataques.

Yarn introduce estrategias como plug and play, que elimina la necesidad de una carpeta node_modules, y soporta la instalación desde diferentes fuentes como git o SVN mediante protocolos personalizados. También permite la gestión de versiones cruzadas de espacios de trabajo y ofrece restricciones para vincular paquetes y archivos dentro de un proyecto.

Yarn 2.0 introdujo una nueva estrategia de instalación llamada plug and play y empezó a enfocarse más en la modularidad y la seguridad. Yarn 3.0 continuó estas mejoras y añadió la capacidad de instalar enlaces simbólicos, similar a pnpm, además de perfeccionar las herramientas y flujos de trabajo existentes.

Yarn continúa enfocándose en mejorar la seguridad, la resolución de dependencias y la facilidad de uso. La versión 4.0 planea incluir todas las características experimentales directamente en el binario y hacer que las configuraciones de seguridad sean más accesibles y robustas. Además, Yarn busca integrarse mejor con Node.js a través de herramientas como Corepack.

Para contribuir a Yarn, puedes empezar explorando problemas etiquetados como 'buenos primeros problemas' en su repositorio de GitHub. Yarn también anima a los colaboradores nuevos a unirse a su comunidad en Discord y seguir las pautas de contribución disponibles en su documentación.

Yarn gestiona una base de datos de problemas de compatibilidad, lo que permite solucionar de forma proactiva incompatibilidades conocidas. Además, ofrece un protocolo de parche que permite aplicar correcciones a paquetes específicos y mantener estos cambios dentro del repositorio del proyecto.

Yarn implementa medidas como la verificación de paquetes y la resolución estable para prevenir ataques de la cadena de suministro. También está trabajando en estrategias de resolución alternativas para proteger contra ataques específicos que explotan vulnerabilidades en paquetes JavaScript.

Yarn ofrece ventajas como su naturaleza de código abierto, mayor previsibilidad en la gestión de paquetes, y un enfoque modular que permite una personalización extensa. Además, la integración de características de seguridad avanzadas y su capacidad para manejar grandes proyectos con múltiples dependencias son puntos clave.

Maël Nison
Maël Nison
28 min
16 Jun, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Yarn es un gestor de paquetes que se enfoca en la estabilidad, rendimiento y seguridad. Ofrece características únicas como instalación plug and play, soporte para nonmodules y el protocolo exec. Yarn se compromete a ser un buen ciudadano en la comunidad de código abierto y contribuye a solucionar dependencias. Es parte del grupo de trabajo del Cargador de Node.js y aboga por Corepack. Yarn todavía es experimental pero está mejorando su experiencia de usuario y características de seguridad. Las contribuciones son bienvenidas, y cambiar a Yarn puede mejorar el rendimiento en proyectos grandes.

1. Introducción a Yarn

Short description:

¡Hola a todos! Soy Mael, y he estado liderando el desarrollo de Yarn. Hoy, hablaré sobre los valores fundamentales de Yarn, nuestros objetivos para cada lanzamiento y el futuro de Yarn. Yarn es un gestor de paquetes similar a NPM, que enfatiza la consistencia, la estabilidad y el buen rendimiento. Lanzamos la primera versión de Yarn hace seis años, y ahora estamos trabajando en la versión 4.0.

[♪ music sonando ♪ ♪ Hola a todos, mi nombre es Mael. Trabajo en Datadog. Y he estado liderando el desarrollo de Yarn durante los últimos años.

Así que hoy voy a hablarles un poco sobre Yarn, cuáles son sus valores fundamentales, lo que estamos buscando para cada versión que lanzamos y les mostraré un vistazo del futuro.

Antes de empezar, ¿qué es Yarn? Así que Yarn es un gestor de paquetes que quizás conozcan, similar a NPM, que les permite instalar paquetes en su sistema para resolver dependencias. Y favorece la consistencia y la estabilidad mientras aún intenta proporcionar buen rendimiento y alta modernidad a sus proyectos.

Ha sido una larga aventura, la primera versión de Yarn se lanzó hace casi seis años, con la 0.15, un año después lanzamos la primera versión estable con la 1.0, y dos años y medio después decidimos que era hora de hacer un cambio y decidir de una vez por todas lo que queríamos hacer en el futuro de Yarn, y con eso llegó la 2.0.

En ese momento, hubo muchas discussion sobre algunos de los aspectos fundamentales en los que hemos estado trabajando en el lanzamiento subsiguiente de la 3.0, y que vamos a seguir refinando en la 4.0.

2. Prioridades y Características Únicas de Yarn

Short description:

¿Por qué otro gestor de paquetes? Yarn aporta propiedades y prioridades únicas. La estabilidad es un principio fundamental, garantizando experiencias consistentes y predecibles. La mantenibilidad y la preparación para el futuro son consideraciones clave. Yarn está diseñado para ser modular, permitiendo lógicas personalizadas y casos de uso específicos. La seguridad también es un enfoque para prevenir futuros ataques. El rendimiento no se discute debido al año actual.

¿Por qué otro gestor de paquetes? Ya tenemos MPM, también tenemos PMPM, ¿qué aporta Yarn a la mesa? Lo que hay que recordar, y eso es cierto para los gestores de paquetes, pero también es cierto para, digamos, los empaquetadores es que las características y los rendimientos aparte, cada proyecto en el ecosistema de código abierto ecosistema tiene diferentes propiedades en términos de prioridades, hoja de ruta, modelo de gobernanza, mantenibilidad, infraestructura. Todas esas cosas son cosas que debes tener en cuenta cada vez que intentas evaluar un proyecto. Porque por ejemplo, MPM es propiedad de GitHub, mientras que Yarn es completamente de código abierto. En ambos casos, hay pros y contras, y ese es el tipo de cosa que no ves a primera vista, pero que tiene sentido cuando estás tratando de invertir en una herramienta a largo plazo.

Así que hablé de prioridades. ¿Cuáles son las prioridades de Yarn? Tenemos cuatro de ellas en este momento. La última se añadió hace poco y vamos a hablar de ella en las próximas diapositivas, pero primero, la estabilidad es el principio fundamental de Yarn. Queremos que todas tus instalaciones, toda tu experiencia usando Yarn sea determinista y predecible. Si algo funciona para ti, entonces debería funcionar para tus colegas. Si algo falla para ti, entonces también debería fallar para tus colegas. Y esta última parte es bastante importante porque asegurarse de que un programa falla de manera consistente te permite asegurarte de que también funcionará de manera consistente. Si alguien tiene un problema, podrás reproducir el problema y ayudarles a superarlo. Mantenibilidad. Estamos tratando de configurar el proyecto no solo para que tenga éxito ahora, sino también para que tenga éxito en el futuro. La forma en que vemos Yarn, Yarn seguirá estando aquí en diez años. ¿Cómo podemos asegurarnos de que Yarn seguirá estando en buen estado en diez años? Eso no es tan fácil porque significa que tenemos que tomar decisiones en términos de gobierno, en términos de arquitectura de nuestro propio repositorio. ¿Cómo podemos mantener la base de código saludable? Así que esa es una de nuestras prioridades.

La modernidad es otra. En Yarn 1, notamos que muchos de ustedes tenían casos de uso muy específicos. Fue muy difícil para nosotros implementar todas las características que necesitaban, a veces que solo una empresa necesitaba. Así que en lugar de eso, lo que decidimos hacer con la versión moderna de Yarn es hacer nuestro núcleo modular. Lo que significa que puedes escribir plugins, puedes escribir comandos que se integran en la API central de Yarn que proporcionamos y que documentamos. Y puedes hacer tu propia lógica en unas pocas líneas simples de código. Casi todos los comandos de Yarn se implementan a través de este sistema. Por ejemplo, la instalación en sí misma toma algo así como 50 líneas para implementar. Y finalmente, seguridad. Eso es algo que estamos empezando a introducir, porque aunque Yarn era seguro antes en el sentido de que intentábamos prevenir que los paquetes accedieran a tu disco, hay otros tipos de ataques. Durante los últimos meses, es posible que hayas oído hablar de ataques como UAParser.js o Faker.js, este tipo de problemas que están empezando a surgir, y queremos proporcionar una solución para que no sea un problema en el futuro. Puede que te des cuenta de que no hablé de rendimiento. Eso es porque estamos en 2022.

QnA

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

Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
¿Tienes un producto grande construido por muchos equipos? ¿Estás luchando para lanzar a menudo? ¿Se convirtió tu frontend en un monolito inmantenible masivo? Si, como yo, has respondido sí a cualquiera de esas preguntas, ¡esta charla es para ti! Te mostraré exactamente cómo puedes construir una arquitectura de micro frontend con Remix para resolver esos desafíos.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
Remix es un marco de trabajo web que te ofrece el modelo mental simple de una aplicación de múltiples páginas (MPA) pero el poder y las capacidades de una aplicación de una sola página (SPA). Uno de los grandes desafíos de las SPA es la gestión de la red que resulta en una gran cantidad de indirecciones y código defectuoso. Esto es especialmente notable en el estado de la aplicación que Remix elimina por completo, pero también es un problema en los componentes individuales que se comunican con un punto final de backend de un solo propósito (como una búsqueda de combobox, por ejemplo).
En esta charla, Kent demostrará cómo Remix te permite construir componentes de interfaz de usuario complejos que están conectados a un backend de la manera más simple y poderosa que hayas visto. Dejándote tiempo para relajarte con tu familia o lo que sea que hagas para divertirte.
Haciendo JavaScript en WebAssembly Rápido
JSNation Live 2021JSNation Live 2021
29 min
Haciendo JavaScript en WebAssembly Rápido
Top Content
JavaScript en el navegador se ejecuta muchas veces más rápido de lo que lo hacía hace dos décadas. Y eso sucedió porque los proveedores de navegadores pasaron ese tiempo trabajando en intensivas optimizaciones de rendimiento en sus motores JavaScript.Debido a este trabajo de optimización, JavaScript ahora se está ejecutando en muchos lugares además del navegador. Pero todavía hay algunos entornos donde los motores JS no pueden aplicar esas optimizaciones de la manera correcta para hacer las cosas rápidas.Estamos trabajando para resolver esto, comenzando una nueva ola de trabajo de optimización de JavaScript. Estamos mejorando el rendimiento de JavaScript para entornos completamente diferentes, donde se aplican reglas diferentes. Y esto es posible gracias a WebAssembly. En esta charla, explicaré cómo funciona todo esto y qué vendrá a continuación.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Como desarrolladores, pasamos gran parte de nuestro tiempo depurando aplicaciones, a menudo código que ni siquiera escribimos. Lamentablemente, a pocos desarrolladores se les ha enseñado cómo abordar la depuración, es algo que la mayoría de nosotros aprendemos a través de la experiencia dolorosa. La buena noticia es que _puedes_ aprender a depurar de manera efectiva, y hay varias técnicas y herramientas clave que puedes usar para depurar aplicaciones de JS y React.
¿Webpack en 5 años?
JSNation 2022JSNation 2022
26 min
¿Webpack en 5 años?
Top Content
¿Qué podemos aprender de los últimos 10 años para los próximos 5 años? ¿Hay un futuro para Webpack? ¿Qué necesitamos hacer ahora?
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
Puedes revisar las diapositivas de la charla de James aquí.

Workshops on related topic

Uso de CodeMirror para construir un editor de JavaScript con Linting y AutoCompletado
React Day Berlin 2022React Day Berlin 2022
86 min
Uso de CodeMirror para construir un editor de JavaScript con Linting y AutoCompletado
Top Content
WorkshopFree
Hussien Khayoon
Kahvi Patel
2 authors
Usar una biblioteca puede parecer fácil a primera vista, pero ¿cómo eliges la biblioteca correcta? ¿Cómo actualizas una existente? ¿Y cómo te abres camino a través de la documentación para encontrar lo que quieres?
En esta masterclass, discutiremos todos estos puntos finos mientras pasamos por un ejemplo general de construcción de un editor de código usando CodeMirror en React. Todo mientras compartimos algunas de las sutilezas que nuestro equipo aprendió sobre el uso de esta biblioteca y algunos problemas que encontramos.
Pruebas de Aplicaciones Web utilizando Cypress
TestJS Summit - January, 2021TestJS Summit - January, 2021
173 min
Pruebas de Aplicaciones Web utilizando Cypress
WorkshopFree
Gleb Bahmutov
Gleb Bahmutov
Este masterclass te enseñará los conceptos básicos de cómo escribir pruebas de extremo a extremo utilizando Cypress Test Runner.
Cubriremos la escritura de pruebas, abarcando todas las características de la aplicación, estructurando las pruebas, interceptando solicitudes de red y configurando los datos del backend.
Cualquier persona que conozca el lenguaje de programación JavaScript y tenga NPM instalado podrá seguir el masterclass.
Construye un potente DataGrid en pocas horas con Ag Grid
React Summit US 2023React Summit US 2023
96 min
Construye un potente DataGrid en pocas horas con Ag Grid
WorkshopFree
Mike Ryan
Mike Ryan
¿Tu aplicación React necesita mostrar eficientemente muchos (y muchos) datos en una cuadrícula? ¿Tus usuarios quieren poder buscar, ordenar, filtrar y editar datos? AG Grid es la mejor cuadrícula de JavaScript en el mundo y está llena de características, es altamente eficiente y extensible. En esta masterclass, aprenderás cómo empezar con AG Grid, cómo podemos habilitar la ordenación y el filtrado de datos en la cuadrícula, la representación de celdas y más. Saldrás de esta masterclass gratuita de 3 horas equipado con el conocimiento para implementar AG Grid en tu aplicación React.
Todos sabemos que crear nuestra propia solución de cuadrícula no es fácil, y seamos honestos, no es algo en lo que deberíamos estar trabajando. Estamos enfocados en construir un producto e impulsar la innovación. En esta masterclass, verás lo fácil que es empezar con AG Grid.
Prerrequisitos: React y JavaScript básicos
Nivel de la masterclass: Principiante
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
Construye una Potente Rejilla de Datos con AG Grid
React Summit 2024React Summit 2024
168 min
Construye una Potente Rejilla de Datos con AG Grid
WorkshopFree
Brian Love
Brian Love
¿Tu aplicación React necesita mostrar eficientemente una gran cantidad de datos en una rejilla? ¿Tus usuarios quieren poder buscar, ordenar, filtrar y editar datos? AG Grid es la mejor rejilla JavaScript del mundo y está repleta de funciones, altamente eficiente y extensible. En este masterclass, aprenderás cómo empezar con AG Grid, cómo habilitar la ordenación y filtrado de datos en la rejilla, la personalización y renderización de celdas, y más. Saldrás de este masterclass gratuito de 3 horas equipado con los conocimientos para implementar AG Grid en tu aplicación React.
Búsqueda de texto completo basada en JavaScript con Orama en todas partes
Node Congress 2023Node Congress 2023
49 min
Búsqueda de texto completo basada en JavaScript con Orama en todas partes
Workshop
Michele Riva
Michele Riva
En este masterclass, veremos cómo adoptar Orama, un potente motor de búsqueda de texto completo escrito completamente en JavaScript, para hacer que la búsqueda esté disponible donde sea que se ejecute JavaScript. Aprenderemos cuándo, cómo y por qué sería una gran idea implementarlo en una función sin servidor, y cuándo sería mejor mantenerlo directamente en el navegador. Olvídate de las APIs, configuraciones complejas, etc.: Orama facilitará la integración de la búsqueda en proyectos de cualquier escala.