Belirli bir dosya için eslint kuralını kapatma


404

Tüm dosya için eslint kuralını kapatmak mümkün müdür? Gibi bir şey:

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

(Eslint-devre dışı bırakma satırına benzer.) Bana oldukça sık geliyor, belirli bir dosyada, o dosya için Tamam olarak kabul edilen birçok yerde belirli bir kuralı ihlal ediyorum, ancak devre dışı bırakmak istemiyorum tüm proje için kural veya o dosya için diğer kuralları devre dışı bırakmak istemiyorum.


1
Dosyanın ilk satırı olarak bir kural ekleyebilirsiniz: / * eslint no-use-before-define: 2 * /
joaumg

2
mükemmel, işe yarıyor, teşekkürler. Belgelerdeki bölümü gözden kaçırdım
Tomas Kulich

Yanıtlar:


404

Konfigürasyonları dosyanın üstüne koyarak dosya için belirli bir kuralı kapatabilir / değiştirebilirsiniz.

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

or

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

Daha fazla bilgi


8
Dosyanın üst kısmına bunun gibi dosyaya özgü.eslintrc tüm kuralları uygulayan bir kural koymanın bir yolu var mı ?
Jeremy

9
@Jeremy cevabımı gör. Sadece .eslintignoreproje kök dizininize bir dosya eklemeniz gerekir .
prograhammer

Nasıl işe görünüyor olmayan bir html veya bir ejs dosyası hakkında .eslintignoreve /* eslint no-use-before-define: 0 */ // --> OFFya?
Jeet

Bir satırda birden fazla yoksayma gerçekleştirmek mümkün müdür?
cheshireoctopus

4
/ * Eslint-devre dışı bırakma kural adını * / denedim ve işe yaradı
Marcos Pereira

304

Dosya için belirli bir kuralı devre dışı bırakmak için:

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

Eslint'te tek satır yorumunun çalışmadığı bir hata olduğuna dikkat edin -

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

Bu gönderiyi kontrol et


28
Bu, yalnızca no-use-before-defineyok saymayı amaçlayan kural değil, tüm blok kurallarını devre dışı bırakır
Jeremy

13
Temel olarak bütün fikir budur. Soru " Tüm dosya için eslint kuralını kapatmak mümkün mü ?"
Wahome

27
@Wahome " Tüm dosya için eslint kuralını kapatmak mümkün mü ?" Kural kelimesi tekildir . Cevabınız tüm kuralları çoğul olarak kapatır .
spencer.sm

8
açıklamasında belirli bir kuralı devre dışı bırakmak gibi bir şey istediğini söyledi - soruyu tekrar okuyun!
Marwen Trabelsi

5
Bu doğru, tüm soruyu ele almıyor, ancak yine de yararlı bir cevap çünkü bu konu "eslint ignore file" i googling yaparken en iyi sonuç
Robin Métral

143

ESLint'e projenizin kök dizininde bir dosya oluşturarak belirli dosyaları ve dizinleri yoksaymasını söyleyebilirsiniz .eslintignore:

.eslintignore

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

Yoksay kalıpları .gitignorespesifikasyona göre davranır . (Düzenleyicinizi yeniden başlatmayı unutmayın.)


10
Bu dosyadaki yalnızca belirli kuralları göz ardı etmek mümkün mü?
J. Hesters

Ben oy verirdim ama aşağıdaki cevabımın puanı daha az: D
OZZIE

2
Çok hoş! ** kullanarak klasörleri, alt dizinleri, alt dizinleri yinelemeli bir şekilde dosya ekleyebilirsiniz. Örneğin: spec/javascripts/**/*.js.
Victor

Mükemmel - Bu, otomatik olarak oluşturulan ve sık sık değiştirilen dosyalar için yararlıdır (AWS's Amplify veya MobileHub kullanıyorsanız aws-export.js gibi)
bogan27

Bu hala bir uyarı veriyor
dan-klasson

117

Ayrıca aşağıdaki gibi bir kuralı devre dışı bırakabilir / etkinleştirebilirsiniz:

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

Soruda eslint-disable-linebelirtildiği gibi. Yeniden etkinleştirirken karmaşık bir kural yapılandırmasını geri yüklemek istemiyorsanız daha iyi bir yöntem olabilir.


Bunu tercih ediyorum, çünkü eslint config'te tanımladığım seviyeyi (uyar, hata) geri yüklüyor.
Jankapunkt

Benim için işe yarayan çözüm bu. Kuralı kapatıp açmak işe yaramadı.
JoshJoe

65

Yoksaymak istediğiniz kuralların sayısına (Tümü veya Bazıları) ve devre dışı bırakma kapsamına (Satır (lar), Dosya (lar), Her Yerde) dayanarak, 2 × 3 = 6 vakamız var.


1) "Tüm kurallar" ı devre dışı bırakma

Durum 1.1: "Bir veya daha fazla Satır" için "Tüm Kurallar" ı devre dışı bırakmak istiyorsunuz

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

Durum 1.2: "Tek Dosya" için "Tüm Kurallar" ı devre dışı bırakmak istiyorsunuz

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

Durum 1.3: "Bazı dosyalar" için "Tüm kurallar" devre dışı bırakmak istiyorsunuz

Bunu yapmanın 3 yolu vardır:

  1. 1.2 ile gidebilir ve /* eslint-disable */dosyaları tek tek ekleyebilirsiniz .
  2. Dosya adlarını girebilirsiniz .eslintignore. Bu özellikle göz ardı edilmesini istediğiniz bir yolunuz varsa işe yarar . (ör. apidoc/**)
  3. Alternatif olarak, ayrı bir .eslintignoredosyaya sahip olmak istemiyorsanız , burada"eslintIgnore": ["file1.js", "file2.js"] belirtildiği package.jsongibi ekleyebilirsiniz .

2) "Bazı Kuralları" Devre Dışı Bırakma

Durum 2.1: "Bir veya daha fazla Satır" için "Bazı Kurallar" ı devre dışı bırakmak istiyorsunuz

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.

Durum 2.2: "Bir Dosya" için "Bazı Kurallar" ı devre dışı bırakmak istiyorsunuz

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

Daha fazla örnek burada .

## Durum 2.3: "Bazı dosyalar" için "Bazı Kurallar" ı devre dışı bırakmak istiyorsunuz

Bu daha az basittir. Bunları burada belirtildiği gibi bölümünüzün "excludedFiles"nesnesine koymalısınız ."overrides".eslintrc


4
PS. Durum 5: "Tüm Dosyalar" için "Tüm kurallar" ı devre dışı bırakmak istiyorsunuz - npm uninstall eslint! : p
Aidin

2
Ayrıca yalnızca /* */stil yorumunu kullanabileceğinizi unutmayın eslint-disable. // eslint-disable no-use-before-defineişe yaramayacak. Gerçi çalışır // eslint-disable-next-line.
Aidin

56

.Eslintrc.js yapılandırma dosyanıza "geçersiz kılmalar" eklemek daha iyidir. Örneğin, İşlemler ile biten tüm js dosyaları için camelcase kuralını devre dışı bırakmazsanız, bu kodu .eslintrc.js'de kural kapsamından sonra ekleyin.

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

OP'nin belirli bir dosya hakkındaki sorusuna cevap vermez.
wscourge

Dosya içinde yapmanın harika bir alternatifi.
Josef Engelfrost

8
Çok takdir edilmemiş bir cevap!
Adam

Harika çalışıyor! IMHO bu kabul edilen cevap olmalı. Bu şekilde eslintrc dosyasında kalır (kaynak dosyaları temiz tutar) ve belirli dosyalar için belirli kuralların davranışını geçersiz kılabilir. +1
akagixxer

48

Dosyanızdaki kural uyarılarını geçici olarak devre dışı bırakmak için, blok yorumlarını aşağıdaki biçimde kullanın:

/* eslint-disable */

Bu işlem ESLint'i

/* eslint-enable */

yoruma ulaşıldı.

Bu konu hakkında daha fazla bilgiyi buradan edinebilirsiniz .


36

Kabul edilen cevap benim için işe yaramadı (belki eslint'in farklı bir versiyonu ...? Kullanıyorum eslint v3.19.0), ancak aşağıdakilerle bir çözüm buldum ...

Aşağıdakileri dosyanızın üstüne yerleştirin

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

Bu, tüm dosya için kuralı devre dışı bırakacaktır


7
... ya da çoklu, gibi/* eslint-disable no-unused-vars, no-console, import/no-extraneous-dependencies, spaced-comment */
Frank Nocke

1
aynı, kabul edilen cevap benim için işe yaramadı. İki farklılıkları: Değişen eslintiçin eslint-disablebırakarak : 0. Eslint@4.19.1 kullanma.
hellatan

10
/*eslint-disable */

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

/*eslint-enable */

benim için çalıştı


4
Bu, yalnızca no-use-before-defineyok saymayı amaçlayan kural değil, tüm blok kurallarını devre dışı bırakır
Jeremy

Bu bana yardımcı oldu, teşekkürler! Ayrıca bu yanıtı, tüm kuralları devre dışı bırakmak da amaçlanan kuralı devre dışı
bırakın

7

Bunu örneğin dosyanın üstüne koyabilirsiniz:

/* eslint-disable no-console */

1

Kullanarak bir dosya için belirli kuralı kapatabilirsiniz /*eslint [<rule: "off"], >]*/

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

Sürüm: eslint@4.3.0


Bir kuralın yalnızca bir tam dosya için devre dışı bırakılması gerektiğinde bu mükemmel bir şekilde çalıştı.
Umakant Patil

0

eslint geçersiz kılma özelliğini, aşağıdaki gibi glob deseniyle eşleşen dosyalarda belirli kuralları kapatacak şekilde yapılandırabilirsiniz.

Burada, no-duplicate-stringtüm dosyaları test etmek için kuralı kapatmak istiyorum .

overrides: [
  {
    files: ["**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)"],
    rules: {
      'sonarjs/no-duplicate-string': 'off'
    }
  }
]
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.