Mematikan aturan eslint untuk file tertentu


404

Apakah mungkin untuk mematikan aturan eslint untuk seluruh file? Sesuatu seperti:

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

(Analog dengan eslint-disable-line.) Cukup sering terjadi pada saya, bahwa dalam file tertentu, saya melanggar aturan tertentu di banyak tempat yang dianggap OK untuk file itu, tetapi saya tidak ingin menonaktifkan aturan untuk seluruh proyek juga tidak ingin menonaktifkan aturan lain untuk file tertentu.


1
Anda dapat menambahkan aturan sebagai baris pertama file sebagai berikut: / * eslint no-use-before-define: 2 * /
joaumg

2
sempurna, itu berhasil, terima kasih. Saya baru saja mengabaikan bagian dalam dokumen: eslint.org/docs/user-guide/configuring.html#configuring-rules
Tomas Kulich

Jawaban:


404

Anda dapat mematikan / mengubah aturan tertentu untuk file dengan meletakkan konfigurasi di bagian atas file.

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

or

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

Info lebih lanjut


8
Apakah ada cara untuk meletakkan aturan .eslintrcyang memberlakukan semua aturan spesifik file seperti ini di bagian atas file?
Jeremy

9
@ Jeremy lihat jawaban saya. Anda hanya perlu menambahkan .eslintignorefile ke direktori root proyek Anda.
Pemrogram

Bagaimana dengan file html atau ejs, yang sepertinya tidak berfungsi .eslintignoredan /* eslint no-use-before-define: 0 */ // --> OFFbaik?
Jeet

Apakah mungkin melakukan beberapa pengabaian pada satu baris?
cheshireoctopus

4
Saya mencoba / * eslint-disable-nama aturan * / dan berhasil
Marcos Pereira

304

Untuk menonaktifkan aturan tertentu untuk file:

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

Perhatikan ada bug di eslint di mana komentar satu baris tidak akan berfungsi -

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

Periksa pos ini


28
Ini akan menonaktifkan semua aturan eslint di dalam blok itu, bukan hanya yang no-use-before-definedimaksudkan untuk diabaikan
Jeremy

13
Pada dasarnya itulah keseluruhan ide. Pertanyaannya adalah "Apakah mungkin untuk mematikan aturan eslint untuk seluruh file ?"
Wahome

27
@Wahome "Apakah mungkin untuk mematikan aturan eslint untuk seluruh file?" Aturan kata adalah tunggal . Jawaban Anda mematikan semua aturan jamak.
spencer.sm

8
dalam uraian yang dia sebutkan bahwa dia menginginkan sesuatu seperti menonaktifkan aturan khusus- baca lagi pertanyaannya!
Marwen Trabelsi

5
Memang benar, ini tidak menjawab seluruh pertanyaan, tetapi masih merupakan jawaban yang bermanfaat karena utas ini adalah hasil teratas ketika googling "eslint ign file"
Robin Métral

143

Anda dapat memberitahu ESLint untuk mengabaikan file dan direktori tertentu dengan membuat .eslintignorefile di direktori root proyek Anda:

.eslintignore

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

Pola abaikan berperilaku sesuai dengan .gitignorespesifikasi. (Jangan lupa untuk me-restart editor Anda.)


10
Apakah mungkin untuk mengabaikan hanya aturan khusus dalam file ini?
J. Hesters

Saya akan menang tetapi jawaban saya di bawah ini memiliki skor lebih rendah: D
OZZIE

2
Sangat bagus! Anda juga dapat menambahkan file dalam direktori, subdirektori, subdirektori dengan cara rekursif menggunakan **. Sebagai contoh: spec/javascripts/**/*.js.
Victor

Sempurna - Ini sangat berguna untuk file yang dibuat secara otomatis dan sering diubah (seperti aws-exports.js jika Anda menggunakan AWS's Amplify atau MobileHub)
bogan27

Ini masih memberi peringatan
dan-klasson

117

Anda juga dapat menonaktifkan / mengaktifkan aturan seperti ini:

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

Mirip dengan yang eslint-disable-linedisebutkan dalam pertanyaan. Ini mungkin metode yang lebih baik jika Anda tidak ingin mengembalikan konfigurasi aturan yang rumit saat mengaktifkannya kembali.


Saya lebih suka yang ini, karena mengembalikan level (memperingatkan, kesalahan) yang telah saya definisikan di konfigurasi eslint saya.
Jankapunkt

Ini adalah solusi yang berhasil untuk saya. Mematikan dan menghidupkan aturan tidak berhasil.
JoshJoe

65

Berdasarkan jumlah aturan yang ingin Anda abaikan (Semua, atau Beberapa), dan ruang lingkup menonaktifkannya (Baris, File, Di mana-mana), kami memiliki 2 × 3 = 6 kasus.


1) Menonaktifkan "Semua aturan"

Kasus 1.1: Anda ingin menonaktifkan "Semua Aturan" untuk "Satu atau lebih Baris"

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

Kasus 1.2: Anda ingin menonaktifkan "Semua Aturan" untuk "Satu File"

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

Kasus 1.3: Anda ingin menonaktifkan "Semua aturan" untuk "Beberapa File"

Ada 3 cara Anda bisa melakukan ini:

  1. Anda dapat menggunakan 1.2 dan menambahkan /* eslint-disable */di atas file, satu per satu.
  2. Anda dapat memasukkan nama file .eslintignore. Ini berfungsi baik terutama jika Anda memiliki jalan yang ingin Anda abaikan. (mis. apidoc/**)
  3. Atau, jika Anda tidak ingin memiliki terpisah .eslintignorefile, Anda dapat menambahkan "eslintIgnore": ["file1.js", "file2.js"]di package.jsonseperti yang diperintahkan di sini .

2) Menonaktifkan "Beberapa Aturan"

Kasus 2.1: Anda ingin menonaktifkan "Beberapa Aturan" untuk "Satu atau lebih Baris"

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.

Kasus 2.2: Anda ingin menonaktifkan "Beberapa Aturan" untuk "Satu File"

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

Lebih banyak contoh di sini .

## Kasus 2.3: Anda ingin menonaktifkan "Beberapa Aturan" untuk "Beberapa file"

Ini kurang lurus ke depan. Anda harus meletakkannya di "excludedFiles"objek "overrides"bagian Anda .eslintrcseperti yang diperintahkan di sini .


4
PS. Kasus 5: Anda ingin menonaktifkan "Semua aturan" untuk "Semua File" - npm uninstall eslint! : p
Aidin

2
Perhatikan juga bahwa Anda hanya dapat menggunakan /* */komentar gaya untuk eslint-disable. // eslint-disable no-use-before-definetidak akan berhasil. Ini bekerja untuk // eslint-disable-next-line.
Aidin

56

Lebih baik menambahkan "menimpa" di file konfigurasi .eslintrc.js Anda. Sebagai contoh jika Anda tidak ingin menonaktifkan aturan camelcase untuk semua file js yang berakhir dengan Tindakan tambahkan kode ini setelah lingkup aturan di .eslintrc.js.

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

Itu tidak menjawab pertanyaan OP tentang file tertentu.
wscourge

Alternatif yang bagus untuk melakukannya dalam file.
Josef Engelfrost

8
Jawaban yang sangat kurang dihargai!
Adam

Bagus sekali! IMHO ini harus menjadi jawaban yang diterima. Cara ini tetap dalam file eslintrc (menjaga file sumber tetap bersih) dan dapat mengabaikan perilaku aturan khusus untuk file tertentu. +1
akagixxer

48

Untuk menonaktifkan sementara peringatan aturan dalam file Anda, gunakan blokir komentar dalam format berikut:

/* eslint-disable */

Ini akan menonaktifkan ESLint hingga

/* eslint-enable */

komentar tercapai.

Anda dapat membaca lebih lanjut tentang topik ini di sini .


36

Jawaban yang diterima tidak berfungsi untuk saya (mungkin versi eslint yang berbeda ...? Saya menggunakan eslint v3.19.0), tetapi menemukan solusi dengan yang berikut ...

Tempatkan yang berikut di atas file Anda

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

Ini akan menonaktifkan aturan untuk seluruh file


7
... atau banyak, seperti/* eslint-disable no-unused-vars, no-console, import/no-extraneous-dependencies, spaced-comment */
Frank Nocke

1
sama sama, jawaban yang diterima tidak berhasil untuk saya. Dua perbedaan: mengubah eslintke eslint-disabledan menjatuhkan : 0. Menggunakan eslint@4.19.1.
hellatan

10
/*eslint-disable */

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

/*eslint-enable */

itu berhasil untuk saya


4
Ini akan menonaktifkan semua aturan eslint di dalam blok itu, bukan hanya yang no-use-before-definedimaksudkan untuk diabaikan
Jeremy

Ini membantu saya, terima kasih! Pertimbangkan juga jawaban pertanyaan ini, menonaktifkan semua aturan juga menonaktifkan aturan yang dimaksud
Fabiano Soriani

7

Anda bisa meletakkan ini sebagai contoh di bagian atas file:

/* eslint-disable no-console */

1

Anda dapat mematikan aturan tertentu untuk file dengan menggunakan /*eslint [<rule: "off"], >]*/

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

Versi: kapan: eslint@4.3.0


Ini berfungsi dengan baik jika seseorang perlu menonaktifkan satu aturan hanya untuk satu file lengkap.
Umakant Patil

0

Anda dapat mengkonfigurasi properti override eslint untuk mematikan aturan khusus pada file yang cocok dengan pola glob seperti di bawah ini.

Di sini, saya ingin mematikan no-duplicate-stringaturan untuk menguji semua file.

overrides: [
  {
    files: ["**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)"],
    rules: {
      'sonarjs/no-duplicate-string': 'off'
    }
  }
]
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.