Deaktivieren der Eslint-Regel für eine bestimmte Datei


404

Ist es möglich, die Eslint-Regel für die gesamte Datei zu deaktivieren? So etwas wie:

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

(Analog zu eslint-disable-line.) Es kommt mir ziemlich oft vor, dass ich in einer bestimmten Datei an vielen Stellen gegen eine bestimmte Regel verstoße, die für diese Datei als OK angesehen wird, aber ich möchte die nicht deaktivieren Regel für das gesamte Projekt, noch möchte ich andere Regeln für diese bestimmte Datei deaktivieren.


1
Sie können eine Regel als erste Zeile der Datei wie folgt hinzufügen: / * eslint no-use-before-define: 2 * /
joaumg

2
perfekt, das funktioniert, danke. Ich habe gerade den Abschnitt in den Dokumenten übersehen: eslint.org/docs/user-guide/configuring.html#configuring-rules
Tomas Kulich

Antworten:


404

Sie können eine bestimmte Regel für eine Datei deaktivieren / ändern, indem Sie die Konfigurationen oben in die Datei einfügen.

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

or

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

Mehr Info


8
Gibt es eine Möglichkeit, eine Regel .eslintrceinzufügen, die alle dateispezifischen Regeln wie diese oben in der Datei erzwingt ?
Jeremy

9
@ Jeremy siehe meine Antwort. Sie müssen lediglich eine .eslintignoreDatei zu Ihrem Projektstammverzeichnis hinzufügen .
Programmierer

Wie wärs mit einem HTML oder einer EJS - Datei, die nicht zu funktionieren scheint .eslintignoreund /* eslint no-use-before-define: 0 */ // --> OFFentweder?
Jeet

Ist es möglich, mehrere Ignorierungen in einer Zeile durchzuführen?
Cheshireoctopus

4
Ich habe versucht / * eslint-disable Regel-Name * / und es hat funktioniert
Marcos Pereira

304

So deaktivieren Sie eine bestimmte Regel für die Datei:

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

Beachten Sie, dass es einen Fehler in eslint gibt, bei dem ein einzeiliger Kommentar nicht funktioniert.

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

Überprüfen Sie diesen Beitrag


28
Dies wird alle Eslint-Regeln innerhalb dieses Blocks deaktivieren, nicht nur die no-use-before-define, die ignoriert werden soll
Jeremy

13
Grundsätzlich ist das die ganze Idee. Die Frage ist "Ist es möglich, die Eslint-Regel für die gesamte Datei zu
deaktivieren

27
@Wahome "Ist es möglich, die Eslint- Regel für die gesamte Datei zu deaktivieren ?" Die Wortregel ist singulär . Ihre Antwort deaktiviert alle Regeln im Plural.
spencer.sm

8
In der Beschreibung erwähnte er, dass er so etwas wie das Deaktivieren bestimmter Regeln möchte - lesen Sie die Frage noch einmal!
Marwen Trabelsi

5
Es ist wahr, dies ist nicht die ganze Frage, aber immer noch eine nützliche Antwort, da dieser Thread ein Top-Ergebnis ist, wenn "eslint ignore file" gegoogelt wird
Robin Métral

143

Sie können ESLint anweisen , bestimmte Dateien und Verzeichnisse zu ignorieren, indem Sie eine .eslintignoreDatei im Stammverzeichnis Ihres Projekts erstellen :

.eslintignore

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

Die Ignoriermuster verhalten sich gemäß der .gitignoreSpezifikation. (Vergessen Sie nicht, Ihren Editor neu zu starten.)


10
Ist es möglich, nur bestimmte Regeln in dieser Datei zu ignorieren?
J. Hesters

Ich würde upvoten, aber meine Antwort unten hat weniger Punktzahl: D
OZZIE

2
Sehr schön! Sie können mit ** auch Dateien in Verzeichnissen, Unterverzeichnissen und Unterverzeichnissen rekursiv hinzufügen. Zum Beispiel : spec/javascripts/**/*.js.
Victor

Perfekt - Dies ist besonders nützlich für Dateien, die automatisch generiert und häufig geändert werden (wie aws-exports.js, wenn Sie Amplify oder MobileHub von AWS verwenden)
bogan27

Dies gibt immer noch eine Warnung
dan-klasson

117

Sie können eine Regel wie die folgende auch deaktivieren / aktivieren:

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

Ähnlich eslint-disable-linewie in der Frage erwähnt. Dies ist möglicherweise eine bessere Methode, wenn Sie beim erneuten Aktivieren keine komplizierte Regelkonfiguration wiederherstellen müssen.


Ich bevorzuge dieses, weil es die Ebene (Warnung, Fehler) wiederherstellt, die ich in meiner eslint-Konfiguration definiert habe.
Jankapunkt

Dies ist die Lösung, die für mich funktioniert hat. Das Ein- und Ausschalten der Regel hat nicht funktioniert.
JoshJoe

65

Basierend auf der Anzahl der Regeln, die Sie ignorieren möchten (Alle oder Einige) und dem Umfang der Deaktivierung (Zeile (n), Datei (en), Überall), haben wir 2 × 3 = 6 Fälle.


1) Deaktivieren von "Alle Regeln"

Fall 1.1: Sie möchten "Alle Regeln" für "Eine oder mehrere Zeilen" deaktivieren.

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

Fall 1.2: Sie möchten "Alle Regeln" für "Eine Datei" deaktivieren.

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

Fall 1.3: Sie möchten "Alle Regeln" für "Einige Dateien" deaktivieren.

Es gibt drei Möglichkeiten, wie Sie dies tun können:

  1. Sie können mit 1.2 fortfahren und /* eslint-disable */die Dateien einzeln hinzufügen .
  2. Sie können die Dateinamen eingeben .eslintignore. Dies funktioniert besonders dann gut, wenn Sie einen Pfad haben , den Sie ignorieren möchten. (zB apidoc/**)
  3. Alternativ, wenn Sie keine separate haben wollen .eslintignoreDatei können Sie fügen "eslintIgnore": ["file1.js", "file2.js"]in package.jsonwie angewiesen hier .

2) Deaktivieren von "Einige Regeln"

Fall 2.1: Sie möchten "Einige Regeln" für "Eine oder mehrere Zeilen" deaktivieren.

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.

Fall 2.2: Sie möchten "Einige Regeln" für "Eine Datei" deaktivieren.

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

Weitere Beispiele hier .

## Fall 2.3: Sie möchten "Einige Regeln" für "Einige Dateien" deaktivieren.

Das ist weniger einfach. Sie sollten sie in den "excludedFiles"Gegenstand "overrides"Ihres Abschnitts legen, .eslintrcwie hier angegeben .


4
PS. Fall 5: Sie möchten "Alle Regeln" für "Alle Dateien" deaktivieren - npm uninstall eslint! : p
Aidin

2
Beachten Sie auch, dass Sie nur /* */Stilkommentare für verwenden können eslint-disable. // eslint-disable no-use-before-definewird nicht funktionieren. Es funktioniert aber für // eslint-disable-next-line.
Aidin

56

Es ist besser, "Überschreibungen" in Ihre .eslintrc.js-Konfigurationsdatei einzufügen. Wenn Sie beispielsweise die Camelcase-Regel nicht für alle js-Dateien deaktivieren möchten, die auf Aktionen enden, fügen Sie diesen Code nach dem Regelbereich in .eslintrc.js hinzu.

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

Die Frage von OP zu einer bestimmten Datei wird nicht beantwortet.
wscourge

Tolle Alternative zu In-File.
Josef Engelfrost

8
Sehr unterschätzte Antwort!
Adam

Funktioniert super! IMHO sollte dies die akzeptierte Antwort sein. Diese Methode bleibt in der eslintrc-Datei (hält die Quelldateien sauber) und kann das Verhalten bestimmter Regeln für bestimmte Dateien überschreiben. +1
akagixxer

48

Verwenden Sie Blockkommentare im folgenden Format, um Regelwarnungen in Ihrer Datei vorübergehend zu deaktivieren:

/* eslint-disable */

Dadurch wird ESLint bis zum deaktiviert

/* eslint-enable */

Kommentar ist erreicht.

Weitere Informationen zu diesem Thema finden Sie hier .


36

Akzeptierte Antwort hat bei mir nicht funktioniert (vielleicht eine andere Version von eslint ...? Ich benutze eslint v3.19.0 ), aber eine Lösung mit den folgenden gefunden ...

Platzieren Sie Folgendes oben in Ihrer Datei

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

Dadurch wird die Regel für die gesamte Datei deaktiviert


7
... oder mehrere, wie/* eslint-disable no-unused-vars, no-console, import/no-extraneous-dependencies, spaced-comment */
Frank Nocke

1
Die gleiche, akzeptierte Antwort hat bei mir nicht funktioniert. Zwei Unterschiede: Wechseln eslintzu eslint-disableund Löschen : 0. Verwenden von eslint@4.19.1.
Hellatan

10
/*eslint-disable */

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

/*eslint-enable */

es hat bei mir funktioniert


4
Dies wird alle Eslint-Regeln innerhalb dieses Blocks deaktivieren, nicht nur die no-use-before-define, die ignoriert werden soll
Jeremy

Das hat mir geholfen, danke! Betrachten Sie auch diese Antwort auf die Frage, deaktivieren Sie alle Regeln auch deaktivieren Sie die beabsichtigte Regel
Fabiano Soriani

7

Sie können dies zum Beispiel ganz oben in die Datei einfügen:

/* eslint-disable no-console */

1

Sie können eine bestimmte Regel für eine Datei mithilfe von deaktivieren /*eslint [<rule: "off"], >]*/

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

Ausführung: eslint@4.3.0


Dies funktionierte einwandfrei, falls eine Regel nur für eine vollständige Datei deaktiviert werden muss.
Umakant Patil

0

Sie können die Eigenschaft eslint overrides so konfigurieren, dass bestimmte Regeln für Dateien deaktiviert werden, die dem Glob-Muster wie unten entsprechen.

Hier möchte ich das ausschalten no-duplicate-string Regel zum Testen aller Dateien deaktivieren.

overrides: [
  {
    files: ["**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)"],
    rules: {
      'sonarjs/no-duplicate-string': 'off'
    }
  }
]
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.