ESLint One for All Made Easy

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Introducción al nuevo formato de configuración plana de ESLint, y vea cómo puede mejorar enormemente nuestra experiencia tanto para los creadores de reglas como para los usuarios. Haga 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. El nuevo Flat Config simplifica la estructura compleja de árbol de 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 usar como un formateador y una herramienta para el modo de código, proporcionando más control y opciones de personalización. También admite otros idiomas y se puede integrar con prettier. La migración al Flat Config puede ser un desafío, pero hay paquetes y herramientas compatibles disponibles para ayudar con la transición.
Available in English: ESLint One for All Made Easy

1. Introduction to ESLink and Flat Config

Short description:

¡Hola a todos! Gracias por estar aquí. Soy Anthony Fu, co-miembro de Vite, Vue y Knox. Estoy emocionado de compartir mis hallazgos y prácticas con ESLink. ESLink es una herramienta popular y en constante mejora. Hoy hablaré sobre ESLinks 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, te explicaré por qué deberías considerarlo.

Bien. ¿Cómo están 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 déjenme presentarme un poco. Bien, funcionó. Bien. Y sí, mi nombre es Anthony Fu, y soy co-miembro 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 estoy trabajando en Nuzlab en el equipo de frameworks y pueden encontrarme en los enlaces, con los enlaces a continuación.

Así que, 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. Como, por ejemplo, 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 código. Así que, de manera similar, cuando miré ESLink y su ecosistema hace unos meses, encontré que muchas cosas son muy interesantes pero aún no están completamente exploradas. Así que, hoy me gustaría compartir con ustedes algunos de mis hallazgos y prácticas durante mis recientes exploraciones al respecto. Y de hecho, esta es, como, una charla de 30 minutos pero descubrí que solo tengo 20 minutos, así que necesito apresurarme y espero que no les importe.

Así que, 11 años desde que ESLink salió, en este momento, es fácilmente una de las herramientas más populares que básicamente usamos en cada proyecto. Y a pesar de haber estado alrededor por tanto tiempo, es una herramienta que sigue mejorando y evolucionando constantemente. Y hoy, me gustaría dar un tema ambicioso como ESLinks One for All Made Easy, y compartir con ustedes algunas de las nuevas perspectivas y los patrones de uso de ESLink con las últimas características que acaban de lanzar.

Así que, probablemente han oído, como, ESLink versión 9.0 se lanzó hace aproximadamente dos meses, y el principal destaque es que la versión principal está lanzando 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, como, ESLink Flat Config? ¿Podrían levantar la mano por mí? Bien. Eso es mucho. Bien. ¿Y cuántos de ustedes ya están usando o migrando a ESLink? Bien. Eso es unos pocos, como, ¿veintitantos? Bien. Bien. Gracias. Y así, para aquellos que aún no están en Flat Config, hoy estoy aquí para decirles por qué deberían.

2. Comparación de Configuración Heredada de ESLink y Flat Config

Short description:

Comparemos la configuración heredada de ESLink RSA con la nueva Flat Config. La configuración heredada utiliza .ESLinkRC y extensiones basadas en convenciones, mientras que la Flat Config utiliza ESLink.config.ts e importaciones nativas. Con la Flat Config, puedes renombrar o cambiar plugins fácilmente sin cambiar las reglas de los arrays. 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 Flat Config es el control total y la simplicidad que ofrece en JavaScript con importaciones nativas.

Así que, en caso de que nunca hayan oído hablar de ello, permítanme hacer una rápida comparación entre la configuración heredada de ESLink RSA y la nueva Flat Config para ustedes. Y diferenciar entre esos dos formatos de configuración es bastante sencillo, y la configuración heredada se nombra con .ESLinkRC que soporta varias extensiones como podrías tener, como, .js, .jsum, o a veces también puedes leer la configuración desde tu package.jsum. Y en la Flat Config, por otro lado, solo se carga desde ESLink.config.ts, un archivo de configuración de JavaScript que es la única fuente de elección.

Y cuando se trata de reutilizar el... Espera. Oh. ¿Qué pasó? Y, spoiler, ¿demasiado? Bien. De nuevo. Está bien.

Probablemente mi tecla de choque comienza. Así que, cuando se trata de reutilizar la configuración compartida, el formato de configuración heredado 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, teníamos módulos ESL o algo así. Así que, necesitarías aprender un poco sobre, como, cómo funciona esta convención y saber cómo se resuelve y cómo se mapea al paquete que tienes. Bueno, la Flat Config usará importaciones nativas de ESL donde es más explícito y también te da más control. Y para los plugins, toma un array de cadenas. Solía tomar un array de cadenas, lo cual nuevamente también está basado en convenciones y acoplado con el nombre del paquete del plugin. Y ahora, en la Flat Config, toma un objeto de nombre para los plugins. Y esto significa que ahora puedes renombrar este plugin fácilmente o cambiar a un fork sin verte obligado a cambiar las reglas de los arrays en tu configuración. Así que, también, la naturaleza inherente de las extensiones podría resultar en una estructura de árbol muy compleja porque la configuración compartida también puede tener anidaciones en extensión dentro. Así que, en la Flat Config, se simplifica mucho, donde importas explícitamente una configuración compartida como múltiples objetos o arrays y puedes componerlos en un solo array plano. Así que, por eso se llama Flat Config.

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.
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.
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.
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 Probados de Pinia
Vue.js London 2023Vue.js London 2023
20 min
Patrones Probados de Pinia
Top Content
Pinnia is a lighter, more modular state management solution for Vue apps, offering consistent patterns, TypeScript support, and an intuitive developer experience. PINIA encourages splitting state into manageable domains, improving code splitting, type inferences, team collaboration, and debugging clarity. Pinia provides flexibility in accessing and mutating state, with different approaches for option and setup stores. It also offers features like patch, reset, and onAction methods. Vue Mastery offers comprehensive Pinnia courses and resources for fast learning.
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.

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
React Patterns Made Simple
React Day Berlin 2024React Day Berlin 2024
62 min
React Patterns Made Simple
Top Content
Featured Workshop
Adrian Hajdin
Adrian Hajdin
Aprende patrones de React ampliamente utilizados, incluyendo HOCs, Compound Components, Provider Patterns, Functions as Child, y Portals, para escribir código más limpio y eficiente y crear aplicaciones escalables y mantenibles.Visión general En esta masterclass, los espectadores aprenderán sobre patrones clave de React que pueden hacer su código más eficiente, legible y mantenible. Presentaremos cada patrón, explicaremos cómo funciona y demostraremos ejemplos prácticos. Al final de la sesión, los participantes tendrán una comprensión sólida de cómo usar estos patrones en sus proyectos.Objetivos de aprendizajeHOCs Compound Components Provider Patterns Functions as Child Portals Modularidad Mantenibilidad Aplicación en el mundo real.
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.