ESLint Uno para Todos Hecho Fácil

Rate this content
Bookmark

Introducir el nuevo formato de configuración plana de ESLint y ver cómo puede mejorar en gran medida nuestra experiencia tanto para los creadores de reglas como para los usuarios. Hacer la caja negra transparente y fácil de entender.

This talk has been presented at JSNation 2024, check out the latest edition of this JavaScript Conference.

Anthony Fu
Anthony Fu
27 min
13 Jun, 2024

Comments

Sign in or register to post your comment.
  • Stanisław Gregor
    Stanisław Gregor
    IDEALIGN Stanisław Gregor
    Thank you, Anthony, for this presentation. My only regret is that it was so short and that you had to hurry. I hope I'll be able to see and hear you live sometime! Thank you once more <3
  • Kevin Cocquyt
    Kevin Cocquyt
    Great talk and thanks for the information. Within my team, devs (and myself) find it confusing to know when ESLint or Prettier is doing all the work. I'll try and test if Stylistic would do the necessary work for me (instead of Prettier) and might propose it to the team afterwards.
Video Summary and Transcription
ESLint es una herramienta popular y en constante mejora que ofrece control total y simplicidad en JavaScript con importaciones nativas. La nueva Configuración Plana simplifica la estructura de árbol compleja de las configuraciones compartidas y ha estado en desarrollo durante cinco años. Permite la personalización y generación de tipos, maximizando la flexibilidad. ESLint se puede utilizar como un formateador y una herramienta para el modo de código, proporcionando más opciones de control y personalización. También admite otros lenguajes y se puede integrar con prettier. Migrar a la Configuración Plana puede ser desafiante, pero existen paquetes y herramientas compatibles disponibles para ayudar con la transición.
Available in English: ESLint One for All Made Easy

1. Introducción a ESLink y Flat Config

Short description:

¡Hola a todos! Gracias por estar aquí. Soy Anthony Fu, miembro colaborador de Vite, Vue y Knox. Estoy emocionado de compartir mis descubrimientos y prácticas con ESLink. ESLink es una herramienta popular y en constante mejora. Hoy hablaré sobre ESLink One for All Made Easy y las nuevas características en la versión 9.0, como Flat Config. Si no has oído hablar de ello, explicaré por qué deberías considerar usarlo.

Muy bien. ¿Cómo les va a todos? Bien. Hola a todos y muchas gracias por estar aquí y no esperaba que hubiera tantos de ustedes aquí, así que gracias. Estoy muy contento de estar aquí en JS Nation. Así que, primero permítanme presentarme un poco. Bien, funcionó. Bien. Sí, mi nombre es Anthony Fu, y soy miembro colaborador de Vite, Vue y Knox, y también el creador de Vite's LightDev, Uno CSS Type Challenges y Elk. También soy el mantenedor de ESLink, StylistLink y Cheeky2slash. Actualmente trabajo en Nuzlab en el equipo de framework y pueden encontrarme en los enlaces que están debajo. Como pueden ver, estoy bastante entusiasmado con el código abierto y eso me ha llevado a trabajar en muchos proyectos. Así que, me encanta construir herramientas y resolver los problemas que encuentro. Por ejemplo, como la diapositiva que están viendo está impulsada por SlideF, una herramienta de presentación basada en markdown que está construida sobre tecnologías web. Nació cuando descubrí que las herramientas existentes no eran lo suficientemente flexibles para presentar mi code. De manera similar, cuando investigué ESLink y su ecosistema hace unos meses, descubrí que muchas cosas eran muy interesantes pero aún no se habían explorado completamente. Así que hoy me gustaría compartir con ustedes algunos de mis descubrimientos y prácticas durante mis exploraciones recientes en torno a ello. Y en realidad, esto es, como, una charla de 30 minutos pero veo que solo tengo 20 minutos, así que tengo que apurarme y espero que no les importe. Así que, 11 años desde que salió ESLink, en este momento, es fácilmente una de las herramientas más populares que básicamente usamos en todos los proyectos. Y a pesar de haber estado presente durante tanto tiempo, es una herramienta que sigue mejorando y evolucionando constantemente. Y hoy me gustaría abordar un tema ambicioso como ESLink One for All Made Easy, y compartir con ustedes algunas de las nuevas perspectivas y los patterns de uso de ESLink con las últimas características que acaban de lanzar. Probablemente hayan escuchado, como, ESLink versión 9.0 que se lanzó hace aproximadamente dos meses, y el punto destacado principal es que la versión principal está implementando el nuevo sistema de configuración llamado Flat Config. Así que antes de comenzar, me gustaría hacer una encuesta rápida aquí, como, ¿alguna vez han oído hablar de ESLink Flat Config? ¿Podrían levantar la mano por favor? Vale, eso es mucho. Vale. Y cuántos de ustedes ya están usando o han migrado a ESLink? Vale, eso son unos pocos, como, ¿20 y algo? Vale. Bien. Gracias. Y para aquellos que aún no han utilizado Flat Config, hoy estoy aquí

2. Comparación de la configuración heredada de ESLink y la configuración plana

Short description:

Vamos a comparar la configuración heredada de ESLink RSA con la nueva configuración plana. La configuración heredada utiliza .ESLinkRC y extensiones basadas en convenciones, mientras que la configuración plana utiliza ESLink.config.ts e importaciones nativas. Con la configuración plana, puedes cambiar fácilmente el nombre o cambiar de plugins sin modificar las reglas del array. Simplifica la estructura de árbol compleja de las configuraciones compartidas y ha estado en desarrollo durante cinco años. ESLinux ha puesto mucho esfuerzo, publicando entradas de blog y compartiendo la hoja de ruta. El mayor beneficio de la configuración plana es el control total y la simplicidad que ofrece en JavaScript con importaciones nativas.

para decirte por qué deberías hacerlo. Entonces, en caso de que nunca hayas oído hablar de ello y aquí, permíteme hacer una rápida comparación entre la configuración heredada de ESLink RSA y la nueva configuración plana para ti. Y diferenciar entre esos dos formatos de configuración es bastante sencillo, y la configuración heredada se llama .ESLinkRC y admite varias extensiones basadas en convenciones, como .js, .jsum, o a veces también puedes leer la configuración desde tu package.jsum. Y en la configuración plana, por otro lado, solo se carga desde ESLink.config.ts, un archivo de configuración JavaScript que es la única fuente de elección. Y cuando se trata de reutilizar... Espera. Oh. ¿Qué pasó? Y, spoiler, ¿demasiado? De acuerdo. De nuevo. Bien. De acuerdo. Probablemente mi tecla de choque comienza. Entonces, cuando se trata de reutilizar la configuración compartida, el formato de configuración heredada utiliza implícitamente extensiones basadas en convenciones para cargar la configuración desde tus módulos locales de nodo. Y, por cierto, esto fue creado antes, como, tenemos módulos ESL o algo así. Entonces, necesitarías aprender un poco sobre, como, cómo funciona esta convención y saber cómo se resuelve y cómo se asigna al paquete que tienes. Bueno, la configuración plana utilizará importaciones nativas de ESL, donde es más explícito y también te brinda más control. Y para los plugins, toma una matriz de cadenas. Solía tomar una matriz de cadenas, que nuevamente también está basada en convenciones y está acoplada al nombre del paquete del plugin. Y ahora, en la configuración plana, toma un objeto de nombre para los plugins. Y esto significa que ahora puedes cambiar fácilmente el nombre de este plugin o cambiar a una bifurcación sin tener que cambiar las reglas del array en tu configuración.

Además, la naturaleza inherente de las extensiones puede resultar en una estructura de árbol muy compleja porque la configuración compartida también puede tener extensiones dentro de ella. Entonces, en la configuración plana, se simplifica mucho, donde importas explícitamente una configuración compartida como múltiples objetos o matrices y puedes componerlos en una sola matriz plana. Por eso se llama configuración plana.

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

Enrutamiento en React 18 y más allá
React Summit 2022React Summit 2022
20 min
Enrutamiento en React 18 y más allá
Top Content
Routing in React 18 brings a native app-like user experience and allows applications to transition between different environments. React Router and Next.js have different approaches to routing, with React Router using component-based routing and Next.js using file system-based routing. React server components provide the primitives to address the disadvantages of multipage applications while maintaining the same user experience. Improving navigation and routing in React involves including loading UI, pre-rendering parts of the screen, and using server components for more performant experiences. Next.js and Remix are moving towards a converging solution by combining component-based routing with file system routing.
Aplicaciones React (+Native) full-stack y seguras con tRPC.io
React Advanced 2021React Advanced 2021
6 min
Aplicaciones React (+Native) full-stack y seguras con tRPC.io
Top Content
Alex introduces tRPC, a toolkit for making end-to-end type-safe APIs easily, with auto-completion of API endpoints and inferred data from backend to frontend. tRPC works the same way in React Native and can be adopted incrementally. The example showcases backend communication with a database using queries and validators, with types inferred to the frontend and data retrieval done using Prisma ORM.
Pensando en React Query
React Summit 2023React Summit 2023
22 min
Pensando en React Query
Top Content
React Query is not a data fetching library, but an Asian state manager. It helps keep data up to date and manage agent life cycles efficiently. React Query provides fine-grained subscriptions and allows for adjusting stale time to control data fetching behavior. Defining stale time and managing dependencies are important aspects of working with React Query. Using the URL as a state manager and Zustand for managing filters in React Query can be powerful.
React Slots: una nueva forma de composición
React Advanced 2022React Advanced 2022
21 min
React Slots: una nueva forma de composición
Top Content
Today's Talk introduces React Snots, a new way of composition for design systems. The configuration way provides flexibility but can lead to uncontrolled use cases and wrong patterns. React Slots RFC was created to address the limitations of React's support for web components and slots. It introduces createHost and createSlot APIs to enable component composition and solve previous problems. React Slots RFC allows for flexible component styling and the creation of complex structures without rendering them to the browser.
Patrones avanzados para la gestión de API en aplicaciones React a gran escala
React Advanced 2021React Advanced 2021
20 min
Patrones avanzados para la gestión de API en aplicaciones React a gran escala
Top Content
This Talk covers advanced patterns for API management in large-scale React applications. It introduces the concept of an API layer to manage API requests in a more organized and maintainable way. The benefits of using an API layer include improved maintainability, scalability, flexibility, and code reusability. The Talk also explores how to handle API states and statuses in React, and provides examples of canceling requests with Axios and React Query. Additionally, it explains how to use the API layer with React Query for simplified API management.
7 Patrones de TypeScript que Deberías Estar Usando
React Summit 2023React Summit 2023
19 min
7 Patrones de TypeScript que Deberías Estar Usando
Top Content
This Talk introduces 7 essential TypeScript patterns for React development, including children, spreading props, either-or, generic components, and context. The speaker demonstrates various implementations and provides examples using a fictional dog grooming salon application. Other interesting ideas include using omit and make required types, creating components with either-or interfaces, and using generics, memorization, and context in React. The speaker also introduces the Recontextual library for context management.

Workshops on related topic

Domina los Patrones de JavaScript
JSNation 2024JSNation 2024
145 min
Domina los Patrones de JavaScript
Top Content
Featured Workshop
Adrian Hajdin
Adrian Hajdin
Durante esta masterclass, los participantes revisarán los patrones esenciales de JavaScript que todo desarrollador debería conocer. A través de ejercicios prácticos, ejemplos del mundo real y discusiones interactivas, los asistentes profundizarán su comprensión de las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables. Al final de la masterclass, los participantes ganarán una nueva confianza en su capacidad para escribir código JavaScript de alta calidad que resista el paso del tiempo.
Puntos Cubiertos:
1. Introducción a los Patrones de JavaScript2. Patrones Fundamentales3. Patrones de Creación de Objetos4. Patrones de Comportamiento5. Patrones Arquitectónicos6. Ejercicios Prácticos y Estudios de Caso
Cómo Ayudará a los Desarrolladores:
- Obtener una comprensión profunda de los patrones de JavaScript y sus aplicaciones en escenarios del mundo real- Aprender las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables- Mejorar las habilidades de resolución de problemas y la legibilidad del código- Mejorar la colaboración y la comunicación dentro de los equipos de desarrollo- Acelerar el crecimiento de la carrera y las oportunidades de avance en la industria del software
Mejores Prácticas y Patrones para Administrar Solicitudes de API y Estados
React Advanced 2022React Advanced 2022
206 min
Mejores Prácticas y Patrones para Administrar Solicitudes de API y Estados
Workshop
Thomas Findlay
Thomas Findlay
Con el surgimiento de frameworks, como React, Vue o Angular, la forma en que se construyen los sitios web ha cambiado a lo largo de los años. Las aplicaciones modernas pueden ser muy dinámicas y realizar múltiples solicitudes de API para poblar un sitio web con contenido actualizado o enviar nuevos datos a un servidor. Sin embargo, este cambio de paradigma ha introducido nuevos problemas con los que los desarrolladores deben lidiar. Cuando una solicitud de API está pendiente, tiene éxito o falla, el usuario debe recibir una retroalimentación significativa. Otros problemas pueden incluir el almacenamiento en caché de datos de API o la sincronización del estado del cliente con el servidor. Todos estos problemas requieren soluciones que deben ser codificadas, pero pueden volverse rápidamente inmanejables y dar como resultado una base de código difícil de ampliar y mantener. En este masterclass, cubriremos cómo manejar las solicitudes de API, los estados de API y la cancelación de solicitudes mediante la implementación de una Capa de API y combinándola con React-Query.
Prerrequisitos: Para aprovechar al máximo este masterclass, debes estar familiarizado con React y Hooks, como useState, useEffect, etc. Si deseas codificar junto con nosotros, asegúrate de tener Git, un editor de código, Node y npm instalados en tu máquina.