Skip to content

Commit 56e60ca

Browse files
committed
Part 3D: change eslint configuration
1 parent 987d7d6 commit 56e60ca

File tree

2 files changed

+47
-67
lines changed

2 files changed

+47
-67
lines changed

src/content/3/es/part3d.md

Lines changed: 47 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -228,75 +228,46 @@ npx eslint --init
228228

229229
Responderemos todas las preguntas:
230230

231-
![salida del terminal de ESlint init](../../images/3/52new.png)
231+
![salida del terminal de ESlint init](../../images/3/52q.png)
232232

233-
La configuración se guardará en el archivo _.eslintrc.js_. Cambiaremos _browser_ a _node_ en la configuración de _env_:
233+
La configuración se guardará en el archivo _eslint.config.mjs_. Cambiaremos _browser_ a _node_ en la configuración de _files_:
234234

235235
```js
236-
module.exports = {
237-
"env": {
238-
"commonjs": true,
239-
"es2021": true,
240-
"node": true // highlight-line
241-
},
242-
"overrides": [
243-
{
244-
"env": {
245-
"node": true
246-
},
247-
"files": [
248-
".eslintrc.{js,cjs}"
249-
],
250-
"parserOptions": {
251-
"sourceType": "script"
252-
}
253-
}
254-
],
255-
"parserOptions": {
256-
"ecmaVersion": "latest"
257-
},
258-
"rules": {
259-
}
260-
}
236+
import globals from "globals";
237+
import { defineConfig } from "eslint/config";
238+
239+
export default defineConfig([
240+
{
241+
files: ["**/*.{js,mjs,cjs}"], languageOptions: { globals: globals.node } // highlight-line
242+
}
243+
]);
244+
261245
```
262246

263247
Cambiemos un poco la configuración. Instala un [plugin](https://eslint.style/packages/js) que define un conjunto de reglas relacionadas al estilo:
264248

265249
```
266-
npm install --save-dev @stylistic/eslint-plugin-js
250+
npm install --save-dev @stylistic/eslint-plugin
267251
```
268252

269-
Habilita el plugin y agrega una definición de "extends" y cuatro reglas de estilo:
253+
Habilita el plugin y agrega una definición de "extends":
270254

271255
```js
272-
module.exports = {
273-
// ...
274-
'plugins': [
275-
'@stylistic/js'
276-
],
277-
'extends': 'eslint:recommended',
278-
'rules': {
279-
'@stylistic/js/indent': [
280-
'error',
281-
2
282-
],
283-
'@stylistic/js/linebreak-style': [
284-
'error',
285-
'unix'
286-
],
287-
'@stylistic/js/quotes': [
288-
'error',
289-
'single'
290-
],
291-
'@stylistic/js/semi': [
292-
'error',
293-
'never'
294-
],
295-
}
296-
}
256+
import js from '@eslint/js' // highlight-line
257+
import globals from "globals";
258+
import stylistic from '@stylistic/eslint-plugin' // highlight-line
259+
import { defineConfig } from "eslint/config";
260+
261+
export default defineConfig([
262+
{
263+
files: ["**/*.{js,mjs,cjs}"], languageOptions: { globals: globals.node },
264+
plugins: { js, stylistic }, // highlight-line
265+
extends: ["js/recommended"] // highlight-line
266+
}
267+
]);
297268
```
298269

299-
Extends _eslint:recommended_ añade un [conjunto](https://eslint.org/docs/latest/rules/) de reglas recomendadas al proyecto. Además, se han añadido reglas para la indentación, saltos de línea, guiones y puntos y comas. Estas cuatro reglas están todas definidas en el [plugin de estilos de Eslint](https://eslint.style/packages/js).
270+
Extends _["js/recommended"]_ añade un [conjunto](https://eslint.org/docs/latest/use/core-concepts#rule-suggestions) de reglas recomendadas al proyecto. Además, se han añadido reglas para la indentación, saltos de línea, guiones y puntos y comas.
300271

301272
Inspeccionar y validar un archivo como _index.js_ se puede hacer con el siguiente comando:
302273

@@ -321,10 +292,23 @@ Es recomendable crear un _script npm_ separado para linting:
321292

322293
Ahora, el comando _npm run lint_ comprobará todos los archivos del proyecto.
323294

324-
Además, los archivos del directorio <em>dist</em> se comprueban cuando se ejecuta el comando. No queremos que esto suceda, y podemos lograrlo creando un archivo [.eslintignore](https://eslint.org/docs/latest/use/configure/ignore#the-eslintignore-file) en la raíz del proyecto con el siguiente contenido:
295+
Además, los archivos del directorio <em>dist</em> se comprueban cuando se ejecuta el comando. No queremos que esto suceda, y podemos lograrlo creando agregando [globalIgnores](https://eslint.org/docs/latest/use/configure/ignore) en el archivo _eslint.config.mjs_:
296+
297+
```js
298+
import js from '@eslint/js'
299+
import globals from 'globals'
300+
import stylistic from '@stylistic/eslint-plugin'
301+
import { defineConfig, globalIgnores } from 'eslint/config' // highlight-line
302+
303+
export default defineConfig([
304+
{
305+
files: ["**/*.{js,mjs,cjs}"], languageOptions: { globals: globals.node },
306+
plugins: { js, stylistic },
307+
extends: ['js/recommended']
308+
},
309+
globalIgnores(['./dist/']) // highlight-line
310+
])
325311

326-
```bash
327-
dist
328312
```
329313

330314
Esto hace que el directorio <em>dist</em> no sea comprobado por ESlint.
@@ -368,20 +352,18 @@ Evitemos los [espacios finales innecesarios](https://eslint.org/docs/rules/no-tr
368352
// ...
369353
'eqeqeq': 'error',
370354
'no-trailing-spaces': 'error',
371-
'object-curly-spacing': [
372-
'error', 'always'
373-
],
355+
'object-curly-spacing': ['error', 'always'],
374356
'arrow-spacing': [
375357
'error', { 'before': true, 'after': true }
376-
]
358+
],
377359
},
378360
}
379361
```
380362

381363
Nuestra configuración predeterminada utiliza un montón de reglas predeterminadas de <i>eslint:recommended</i>:
382364

383365
```bash
384-
'extends': 'eslint:recommended',
366+
extends: 'js/recommended',
385367
```
386368

387369
Esto incluye una regla que advierte sobre los comandos _console.log_. La [desactivación](https://eslint.org/docs/latest/use/configure/rules) de una regla se puede lograr definiendo su "valor" como 0 en el archivo de configuración. Mientras tanto, hagamos esto para la regla <i>no-console</i>.
@@ -393,9 +375,7 @@ Esto incluye una regla que advierte sobre los comandos _console.log_. La [desact
393375
// ...
394376
'eqeqeq': 'error',
395377
'no-trailing-spaces': 'error',
396-
'object-curly-spacing': [
397-
'error', 'always'
398-
],
378+
'object-curly-spacing': ['error', 'always'],
399379
'arrow-spacing': [
400380
'error', { 'before': true, 'after': true }
401381
],
@@ -404,7 +384,7 @@ Esto incluye una regla que advierte sobre los comandos _console.log_. La [desact
404384
}
405385
```
406386

407-
**NB** cuando realizas cambios en el archivo <i>.eslintrc.js</i>, se recomienda ejecutar el linter desde la línea de comandos. Esto verificará que el archivo de configuración esté formateado correctamente:
387+
**NB** cuando realizas cambios en el archivo <i>eslint.config.mjs</i>, se recomienda ejecutar el linter desde la línea de comandos. Esto verificará que el archivo de configuración esté formateado correctamente:
408388

409389
![salida de terminal del comando npm run lint](../../images/3/55.png)
410390

src/content/images/3/52q.png

41.6 KB
Loading

0 commit comments

Comments
 (0)