ESLint
ESLint es un linter, esto quiere decir que examinará nuestro código y nos permitirá corregir errores de sintaxis, código mal escrito o incluso malas prácticas. Su uso nos permitirá corregir los puntos comentados anteriormente y si a esto le sumamos la posibilidad de establecer nuestras propias reglas o reglas de la empresa hara que todo nuestro equipo trabaje de la misma forma.
Instalación
Instalamos ESLint:
npm i eslint -D
Configuración:
Una vez instalado podemos generar nuestro archivo de configuración:
npx eslint --init
Nos aparecerá un pequeño asistente donde podremos elegir varias opciones, vamos a explicarlas un poco:
How would you like to use ESLint?
How would you like to use ESLint?
To check syntax only
To check syntax and find problems
> To check syntax, find problems, and enforce code style
- To check syntax only: Comprueba únicamente la sintaxis del código.
- To check syntax and find problems: Comprueba los errores de sintaxis y además encuentra problemas en nuestro código.
- To check syntax, find problems, and enforce code style: Ésta es la opción recomendada. Realiza las dos acciones anteriores y además ayuda a corregir malas prácticas.
What type of modules does your project use?
> JavaScript modules (import/export)
CommonJS (require/exports)
None of these
Con esta opción debemos seleccionar de que forma importamos nuestro código de Javascript, dependerá de si utilizamos import/export o require/exports.
Which framework does your project use?
> React
Vue.js
None of these
Elegimos si utilizamos un Framework de JS como React, Vue u otro.
Does your project use TypeScript?
No
> Yes
¿Usas Typescript?, elige si o no.
Where does your code run?
> Browser
> Node
Podremos seleccionar varias opciones a la vez. Será donde se ejecutará nuestro código para que ESLint lo tenga en cuenta:
- Browser: Si nuestro código está centrado en navegadores sin utilizar NodeJS.
- Node: Si nuestro código está centrado en NodeJS
How would you like to define a style for your project?
> Use a popular style guide
Answer questions about your style
Inspect your JavaScript file(s)
Definiremos que tipo de reglas vamos a utilizar: una popular o una propia.
- Use a popular style guide: Utiliza una guía de normas popular, como puede ser la de: Airbnb, StandardJS, Google, etc...
- Answer questions about your style: Nos hará una serie de preguntas sobre que reglas utilizar en nuestro proyecto.
- Inspect your JavaScript file(s): Toma una decisión sobre las reglas a usar basandose en nuestro código.
What format do you want your config file to be in?
> Javascript
YAML
JSON
Nos pregunta como queremos guardar nuestro archivo de configuración. Lo más popular es utilizar .jso .json.
Would you like to install them now with npm?
No
> Yes
Si respondemos que sí se ejecutará el comando npm install de forma automática, si utilizamos yarn es mejor responder que no.
Reglas:
En la raíz de nuestro proyecto tendremos un fichero llamado .eslint.js|json
, que contendrá lo siguiente:
{
"env": {
"es2021": true,
"browser": true
},
"extends": ["eslint:recommended", "standard"],
"parserOptions": {
"ecmaVersion": 12,
"sourceType": "module"
},
"rules": {}
}
En el objeto de rules, podemos añadir nuestras propias reglas como pueden ser:
"indent": ["error", 2], // Identación de dos espacios
"quotes": ["error", "single"], // Uso de comillas simples
"semi": ["error", "always"], //Poner siempre ; donde sea necesario
"arrow-parens": ["error", "always"] // Añadir siempre los parentesis en las arrow function**
IDE:
Dependiendo del IDE que estemos utilizando debemos descargar el plugin de ESLint para una mejor sinergia. En mi caso utilizo Visual Studio Code:
- Vamos a la pestaña de extensiones (Ctrl + Shift + X).
- Buscamos ESLint y lo instalamos.
Como ejecutar ESLint:
Al guardar:
Tenemos la posibilidad de que ESLint se ejecute al guardar el fichero que estemos guardando.
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
Desde la terminal:
Ejecutarlo directamente desde nuestra terminal:
npx eslint src/js/index.js
Aunque esto pueda parecer que no tiene sentido ya que podemos hacerlo de forma automática al guardar, ESLint se puede ejecutar con herramientas como Husky o Lint-staged comprobar que todo nuestro código es correcto antes de subir nuestro código a nuestro repositorio.
ESLint dispone de muchas configuraciones, en el ejemplo del archivo de configuración hemos visto como utilizabamos standard y las oficiales de ESLint.
ESLint y Prettier:
Si además de ESLint utilizamos Prettier debemos tener en cuenta que pueden haber reglas que se contradigan entre sí... tenemos que configurar ambas herramientas para que trabajen con una buena sinergia.