Disattivazione della regola eslint per un file specifico


405

È possibile disattivare la regola eslint per l'intero file? Qualcosa come:

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

(Analogo a eslint-disable-line.) Mi capita abbastanza spesso, che in un determinato file, infrange una regola specifica in molti punti che è considerata OK per quel file, ma non voglio disabilitare il regola per l'intero progetto né voglio disabilitare altre regole per quel file specifico.


1
Puoi aggiungere una regola come prima riga del file in questo modo: / * eslint no-use-before-define: 2 * /
joaumg

2
perfetto, funziona, grazie. Ho appena trascurato la sezione della documentazione: eslint.org/docs/user-guide/configuring.html#configuring-rules
Tomas Kulich

Risposte:


404

È possibile disattivare / modificare una determinata regola per un file posizionando le configurazioni nella parte superiore del file.

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

or

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

Ulteriori informazioni


8
C'è un modo per inserire una regola .eslintrcche impone tutte le regole specifiche del file come questa nella parte superiore del file?
Jeremy,

9
@Jeremy vedi la mia risposta. Devi solo aggiungere un .eslintignorefile alla directory principale del tuo progetto.
prograhammer,

Che ne dici di un file html o ejs, che non sembra funzionare .eslintignoree /* eslint no-use-before-define: 0 */ // --> OFFneanche?
Jeet

È possibile eseguire più ignori su una riga?
Cheshireoctopus,

4
Ho provato / * eslint-disable rule-name * / e ha funzionato
Marcos Pereira,

304

Per disabilitare una regola specifica per il file:

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

Nota che esiste un bug in eslint in cui il commento a riga singola non funzionerà -

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

Controlla questo post


28
Ciò disabiliterà tutte le regole eslint all'interno di quel blocco, non solo quella che si no-use-before-defineintende ignorare
Jeremy,

13
Fondamentalmente questa è l'intera idea. La domanda è "È possibile disattivare la regola eslint per l' intero file ?"
Wahome,

27
@Wahome "È possibile disattivare la regola eslint per l'intero file?" La parola regola è singolare . La tua risposta disattiva tutte le regole al plurale.
spencer.sm,

8
nella descrizione ha menzionato che vuole qualcosa come disabilitare una regola specifica, rileggere la domanda!
Marwen Trabelsi,

5
È vero, questo non affronta l'intera domanda, ma è comunque una risposta utile poiché questo thread è il miglior risultato quando si cerca su Google "eslint ignore file"
Robin Métral

143

Puoi dire a ESLint di ignorare file e directory specifici creando un .eslintignorefile nella directory principale del tuo progetto:

.eslintignore

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

I modelli ignore si comportano in base a .gitignore specifiche. (Non dimenticare di riavviare l'editor.)


10
È possibile ignorare solo regole specifiche in questo file?
J. Hesters,


2
Molto bella! È inoltre possibile aggiungere file in directory, sottodirectory, directory secondarie in modo ricorsivo utilizzando **. Ad esempio: spec/javascripts/**/*.js.
Victor,

Perfetto: questo è particolarmente utile per i file generati automaticamente e modificati frequentemente (come aws-exports.js se si utilizza Amplify o MobileHub di AWS)
bogan27

Questo continua a dare un avvertimento
dan-klasson il

117

Puoi anche disabilitare / abilitare una regola come questa:

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

Simile a eslint-disable-linecome menzionato nella domanda. Potrebbe essere un metodo migliore se non si desidera ripristinare una configurazione di regole complicata quando si riattiva.


Preferisco questo, perché ripristina il livello (avviso, errore) che ho definito nella mia configurazione eslint.
Jankapunkt,

Questa è la soluzione che ha funzionato per me. L'attivazione e disattivazione della regola non ha funzionato.
JoshJoe,

65

In base al numero di regole che desideri ignorare (Tutte o Alcune) e all'ambito della disabilitazione (Linee), File (i), Ovunque), abbiamo 2 × 3 = 6 casi.


1) Disabilitare "Tutte le regole"

Caso 1.1: si desidera disabilitare "Tutte le regole" per "Una o più righe"

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

Caso 1.2: si desidera disabilitare "Tutte le regole" per "Un file"

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

Caso 1.3: si desidera disabilitare "Tutte le regole" per "Alcuni file"

Ci sono 3 modi per farlo:

  1. Puoi andare con 1.2 e aggiungere /* eslint-disable */sopra i file, uno per uno.
  2. Puoi inserire i nomi dei file .eslintignore. Funziona bene soprattutto se hai un percorso che vuoi ignorare. (per esempioapidoc/** )
  3. In alternativa, se non si vuole avere un separato .eslintignorefile, è possibile aggiungere "eslintIgnore": ["file1.js", "file2.js"]a package.jsoncome indicato qui .

2) Disabilitare "Alcune regole"

Caso 2.1: si desidera disabilitare "Alcune regole" per "Una o più righe"

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: si desidera disabilitare "Alcune regole" per "Un file"

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

Altri esempi qui .

## Caso 2.3: si desidera disabilitare "Alcune regole" per "Alcuni file"

Questo è meno semplice. Dovresti metterli "excludedFiles"nell'oggetto "overrides"della tua sezione .eslintrccome indicato qui .


4
PS. Caso 5: si desidera disabilitare "Tutte le regole" per "Tutti i file" - npm uninstall eslint! : p
Aidin,

2
Si noti inoltre che è possibile utilizzare solo /* */commenti di stile per eslint-disable. // eslint-disable no-use-before-definenon funzionerà. Funziona // eslint-disable-next-lineperò.
Aidin,

56

È meglio aggiungere "sostituzioni" nel file di configurazione .eslintrc.js. Ad esempio, se non si desidera disabilitare la regola camelcase per tutti i file js che terminano in Azioni, aggiungere questo codice dopo l'ambito delle regole in .eslintrc.js.

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

Non risponde alla domanda di OP su un file specifico.
wscourge,

Ottima alternativa a farlo nel file.
Josef Engelfrost,

8
Risposta enormemente sottovalutata!
Adam,

Funziona alla grande! IMHO questa dovrebbe essere la risposta accettata. In questo modo rimane nel file eslintrc (mantiene puliti i file di origine) e può sovrascrivere il comportamento di regole specifiche per file specifici. +1
Akagixxer

48

Per disabilitare temporaneamente gli avvisi delle regole nel file, utilizzare i commenti di blocco nel seguente formato:

/* eslint-disable */

Questo disabiliterà ESLint fino al

/* eslint-enable */

il commento è raggiunto.

Puoi leggere di più su questo argomento qui .


36

La risposta accettata non ha funzionato per me (forse una versione diversa di eslint ...? Sto usando eslint v3.19.0), ma ho trovato una soluzione con il seguente ...

Posiziona quanto segue nella parte superiore del file

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

Ciò disabiliterà la regola per l'intero file


7
... o multipli, come/* eslint-disable no-unused-vars, no-console, import/no-extraneous-dependencies, spaced-comment */
Frank Nocke,

1
lo stesso, la risposta accettata non ha funzionato per me. Due differenze: cambiando eslintper eslint-disablee cadere : 0. Utilizzando eslint@4.19.1.
hellatan,

10
/*eslint-disable */

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

/*eslint-enable */

ha funzionato per me


4
Ciò disabiliterà tutte le regole eslint all'interno di quel blocco, non solo quella che si no-use-before-defineintende ignorare
Jeremy,

Questo mi ha aiutato, grazie! Considera anche questa risposta alla domanda, disabilitando tutte le regole disabilita anche la regola desiderata
Fabiano Soriani,

7

Puoi semplicemente metterlo ad esempio nella parte superiore del file:

/* eslint-disable no-console */

1

È possibile disattivare la regola specifica per un file utilizzando /*eslint [<rule: "off"], >]*/

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

Versione: eslint@4.3.0


Funzionava perfettamente nel caso in cui fosse necessario disabilitare una regola per un solo file completo.
Umakant Patil,

0

è possibile configurare la proprietà delle sostituzioni eslint per disattivare regole specifiche sui file che corrispondono al modello glob come di seguito.

Qui, desidero disattivare la no-duplicate-stringregola per testare tutti i file.

overrides: [
  {
    files: ["**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)"],
    rules: {
      'sonarjs/no-duplicate-string': 'off'
    }
  }
]
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.