XO, linter para JavaScript y TypeScript

XO es un linter moderno para JavaScript y TypeScript que combina simplicidad, rendimiento y reglas opinativas para ayudarte a mantener un código limpio y consistente. Desarrollado sobre ESLint, XO elimina la necesidad de configuraciones extensas al ofrecer una configuración predefinida y directa que funciona desde el primer momento.

¿Qué hace especial a XO?

  1. Configuración mínima
    A diferencia de ESLint, donde necesitas configurar reglas manualmente, XO viene con un conjunto de reglas prediseñadas y sensatas para JavaScript moderno. Esto lo hace ideal para quienes buscan rapidez y consistencia sin complicaciones.

  2. Opinativo por defecto
    XO aplica un estilo de codificación limpio y estricto, lo que asegura que todos los miembros del equipo sigan las mismas pautas de estilo y calidad.

  3. Integración con TypeScript
    Con soporte nativo para TypeScript, puedes usar XO para linting en proyectos TS sin configuraciones adicionales.

  4. Soporte de formato
    Integra Prettier automáticamente para formatear el código sin conflicto con las reglas de linting.

Cómo empezar con XO

  1. Instalación
    Instala XO en tu proyecto con npm o yarn:

    npm install xo --save-dev
  2. Ejecución básica
    Puedes usar XO directamente desde la línea de comandos:

    npx xo
  3. Configuración opcional
    Aunque XO funciona sin configuraciones, puedes personalizarlo fácilmente en el package.json o crear un archivo .xo-config:

    "xo": { "space": true, "semicolon": false, "prettier": true }
  4. Linting con TypeScript
    Instala las dependencias necesarias para TypeScript:

    npm install typescript @types/node --save-dev

    XO detectará automáticamente tus archivos TypeScript.

Características principales

  • Linting y formateo integrado: XO incluye reglas tanto para linting como para formateo.

  • Soporte de importaciones modernas: Admite ES Modules y sintaxis moderna de JavaScript.

  • Modo estricto y compatibilidad con CI: Ideal para mantener un código limpio en entornos colaborativos y pipelines de integración continua.