You can disable ESLint for a single line, a block of code, or an entire file. Wherever possible, specify the rule or rules you wish to disable.

Disable ESLint for a single line

Use the eslint-disable-line and eslint-disable-next-line directives to disable linting for a specific line.

const bad_string = 'nope' // eslint-disable-line camelcase

// eslint-disable-next-line no-array-constructor
const badArray = Array(100)

Disable ESLint for a block

Use the eslint-disable and eslint-enable directives to disable linting for a block of code.

/* eslint-disable no-await-in-loop, no-console */
for (const count = 0; count < 10; count++) {
  console.log(`Processing ${count}`)
  await doThing(count)
}
/* eslint-enable no-await-in-loop, no-console */

Disable ESLint for an entire file

There are several ways to disable linting for an entire file.

Use a block directive

The simplest option is to place a block directive at the start of the file.

/* eslint-disable complexity */

function theHorror(x) {
  if (true) {
    return x
  } else if (false) {
    return x + 1
  } else {
    return x + 2
  }
}

Use an “ignore” file

Create a .eslintignore file in the root of your project containing the files to ignore, one per line. ESLint supports .gitignore-style patterns, exclusions, and so forth.

build/*.js
!build/special.js

Note that this disables all rules for the specified files.

Use a configuration file

ESLint supports an absurd array of configuration files. To further complicate matters you can place these files in nested directories, causing the configuration to cascade. Don’t do that.