Desactivar la regla eslint para un archivo específico


405

¿Es posible desactivar la regla de eslint para todo el archivo? Algo como:

// eslint-disable-file no-use-before-define 

(De forma análoga a eslint-disable-line.) Me sucede con bastante frecuencia que, en un determinado archivo, estoy infringiendo una regla específica en muchos lugares que se considera correcta para ese archivo, pero no quiero desactivar el regla para todo el proyecto ni quiero deshabilitar otras reglas para ese archivo específico.


1
Puede agregar una regla como la primera línea del archivo de la siguiente manera: / * eslint no-use-before-define: 2 * /
joaumg

2
perfecto, eso funciona, gracias. Acabo de pasar por alto la sección en los documentos: eslint.org/docs/user-guide/configuring.html#configuring-rules
Tomas Kulich

Respuestas:


404

Puede desactivar / cambiar una regla particular para un archivo colocando las configuraciones en la parte superior del archivo.

/* eslint no-use-before-define: 0 */  // --> OFF

or

/* eslint no-use-before-define: 2 */  // --> ON

Más información


8
¿Hay alguna manera de poner una regla .eslintrcque haga cumplir todas las reglas específicas del archivo como esta en la parte superior del archivo?
Jeremy

99
@Jeremy ve mi respuesta. Solo necesita agregar un .eslintignorearchivo al directorio raíz de su proyecto.
prograhammer

¿Qué tal un HTML o un archivo ejs, que no parece funcionar .eslintignorey /* eslint no-use-before-define: 0 */ // --> OFFtampoco?
Jeet

¿Es posible realizar múltiples ignoraciones en una línea?
cheshireoctopus

44
Intenté / * eslint-disable rule-name * / y funcionó
Marcos Pereira el

304

Para deshabilitar una regla específica para el archivo:

/* eslint-disable no-use-before-define */

Tenga en cuenta que hay un error en eslint donde el comentario de una sola línea no funcionará:

// eslint-disable max-classes-per-file
// This fails!

Mira esta publicación


28
Esto deshabilitará todas las reglas de eslint dentro de ese bloque, no solo la que se no-use-before-definepretende ignorar
Jeremy

13
Básicamente esa es toda la idea. La pregunta es "¿Es posible desactivar la regla de eslint para todo el archivo ?"
Wahome

27
@Wahome "¿Es posible desactivar la regla de eslint para todo el archivo?" La palabra regla es singular . Su respuesta desactiva todas las reglas en plural.
spencer.sm

8
en la descripción mencionó que quiere algo así como deshabilitar una regla específica: ¡lea nuevamente la pregunta!
Marwen Trabelsi

55
Es cierto, esto no aborda toda la pregunta, pero sigue siendo una respuesta útil ya que este hilo es un resultado superior cuando buscas en Google "eslint ignore file"
Robin Métral

143

Puede decirle a ESLint que ignore archivos y directorios específicos creando un .eslintignorearchivo en el directorio raíz de su proyecto:

.eslintignore

build/*.js
config/*.js
bower_components/foo/*.js

Los patrones de ignorar se comportan de acuerdo con la .gitignoreespecificación. (No olvides reiniciar tu editor).


10
¿Es posible ignorar solo reglas específicas en este archivo?
J. Hesters

Votaría pero mi respuesta a continuación tiene menos puntaje: D
OZZIE

2
¡Muy agradable! También puede agregar archivos en directorios, subdirectorios, subdirectorios de manera recursiva utilizando **. Por ejemplo: spec/javascripts/**/*.js.
Victor

Perfecto: esto es particularmente útil para archivos que se generan automáticamente y se cambian con frecuencia (como aws-exports.js si está utilizando Amplify o MobileHub de AWS)
bogan27

Esto todavía da una advertencia
dan-klasson

117

También puede deshabilitar / habilitar una regla como esta:

/* eslint-disable no-use-before-define */
... code that violates rule ...
/* eslint-enable no-use-before-define */

Similar a eslint-disable-linelo mencionado en la pregunta. Puede ser un mejor método si no desea tener que restaurar una configuración de regla complicada al volver a habilitarla.


Prefiero este, porque restaura el nivel (advertencia, error) que he definido en mi configuración de eslint.
Jankapunkt

Esta es la solución que funcionó para mí. Activar y desactivar la regla no funcionó.
JoshJoe

65

Según la cantidad de reglas que desea ignorar (Todas o Algunas) y el alcance de deshabilitarla (Línea (s), Archivo (s), En todas partes), tenemos 2 × 3 = 6 casos.


1) Desactivar "Todas las reglas"

Caso 1.1: Desea deshabilitar "Todas las reglas" para "Una o más líneas"

Put `/* eslint-disable-line */` at the **end of the line(s)**, 
or `/* eslint-disable-next-line */` right **before the line**.

Caso 1.2: Desea deshabilitar "Todas las reglas" para "Un archivo"

Put the comment of `/* eslint-disable */` at the top of the file.

Caso 1.3: Desea deshabilitar "Todas las reglas" para "Algunos archivos"

Hay 3 formas de hacer esto:

  1. Puede ir con 1.2 y agregar /* eslint-disable */encima de los archivos, uno por uno.
  2. Puede poner los nombres de archivo en .eslintignore. Esto funciona bien especialmente si tiene una ruta que desea ignorar. (por ejemplo apidoc/**)
  3. Alternativamente, si no se quiere tener una separada .eslintignorede archivos, puede añadir "eslintIgnore": ["file1.js", "file2.js"]en package.jsoncomo se indica aquí .

2) Desactivar "Algunas reglas"

Caso 2.1: Desea deshabilitar "Algunas reglas" para "Una o más líneas"

You can put `/* eslint-disable-line quotes */` (replace `quotes` with your rules) at the end of the line(s), 
or `/* eslint-disable-next-line no-alert, quotes, semi */` before the line.

Caso 2.2: Desea deshabilitar "Algunas reglas" para "Un archivo"

Put the `/* eslint-disable no-use-before-define */` comment at the top of the file.  

Más ejemplos aquí .

## Caso 2.3: Desea deshabilitar "Algunas reglas" para "Algunos archivos"

Esto es menos sencillo. Debe ponerlos en el "excludedFiles"objeto de la "overrides"sección de su .eslintrccomo se indica aquí .


44
PD. Caso 5: Desea deshabilitar "Todas las reglas" para "Todos los archivos" - npm uninstall eslint! : p
Aidin

2
También tenga en cuenta que solo puede usar /* */comentarios de estilo para eslint-disable. // eslint-disable no-use-before-defineNo va a funcionar. Funciona para // eslint-disable-next-lineaunque.
Aidin

56

Es mejor agregar "anulaciones" en su archivo de configuración .eslintrc.js. Por ejemplo, si no va a deshabilitar la regla camelcase para todos los archivos js que terminan en Acciones, agregue este código después del alcance de las reglas en .eslintrc.js.

"rules": {    
...........    
},
"overrides": [
 {
  "files": ["*Actions.js"],
     "rules": {
        "camelcase": "off"   
     }
 }
]

No responde la pregunta de OP sobre un archivo específico.
wscourge

Gran alternativa a hacerlo en el archivo.
Josef Engelfrost

8
Respuesta enormemente subestimada!
Adam

¡Funciona genial! En mi humilde opinión, esta debería ser la respuesta aceptada. De esta forma permanece en el archivo eslintrc (mantiene limpios los archivos de origen) y puede anular el comportamiento de reglas específicas para archivos específicos. +1
akagixxer

48

Para deshabilitar temporalmente las advertencias de reglas en su archivo, use los comentarios de bloque en el siguiente formato:

/* eslint-disable */

Esto deshabilitará ESLint hasta que

/* eslint-enable */

Se alcanza el comentario.

Puedes leer más sobre este tema aquí .


36

La respuesta aceptada no funcionó para mí (¿quizás una versión diferente de eslint ...? Estoy usando eslint v3.19.0), pero encontré una solución con lo siguiente ...

Coloque lo siguiente en la parte superior de su archivo

/* eslint-disable no-use-before-define */

Esto deshabilitará la regla para todo el archivo


77
... o múltiples, como/* eslint-disable no-unused-vars, no-console, import/no-extraneous-dependencies, spaced-comment */
Frank Nocke

1
Lo mismo, la respuesta aceptada no funcionó para mí. Dos diferencias: Cambiar eslinta eslint-disabley soltar : 0. Usando eslint@4.19.1.
hellatan

10
/*eslint-disable */

//suppress all warnings between comments
alert('foo');

/*eslint-enable */

funciono para mi


44
Esto deshabilitará todas las reglas de eslint dentro de ese bloque, no solo la que se no-use-before-definepretende ignorar
Jeremy

Esto me ayudó, gracias! También considere esta respuesta a la pregunta, deshabilitar todas las reglas también deshabilita la regla prevista
Fabiano Soriani

7

Puede poner esto, por ejemplo, en la parte superior del archivo:

/* eslint-disable no-console */

1

Puede desactivar una regla específica para un archivo utilizando /*eslint [<rule: "off"], >]*/

/* eslint no-console: "off", no-mixed-operators: "off" */

Versión: eslint@4.3.0


Esto funcionó perfectamente bien en caso de que uno necesite deshabilitar una regla solo para un archivo completo.
Umakant Patil

0

puede configurar la propiedad de anulación de eslint para desactivar reglas específicas en archivos que coincidan con el patrón global como se muestra a continuación.

Aquí, quiero desactivar la no-duplicate-stringregla para probar todos los archivos.

overrides: [
  {
    files: ["**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)"],
    rules: {
      'sonarjs/no-duplicate-string': 'off'
    }
  }
]
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.