Desativando a regra eslint para uma linha específica

1346

Para desativar a regra de linting para uma linha específica no JSHint, usamos a seguinte regra:

/* jshint ignore:start*/
$scope.someVar = ConstructorFunction();
/* jshint ignore:end */

Eu tenho tentado localizar o equivalente do acima para eslint.

runtimeZero
fonte
86
Use eslint-disable-next-line:
Brylie Christopher Oxley
A partir do ESLint v7, é possível especificar o motivo da desativação de uma regra especificada no mesmo comentário.
Dan Dascalescu

Respostas:

2157

Você pode usar a sintaxe de linha única agora:

var thing = new Thing(); // eslint-disable-line no-use-before-define
thing.sayHello();

function Thing() {

     this.sayHello = function() { console.log("hello"); };

}

Ou, se você não quiser comentar na mesma linha com o código real, é possível desativar a próxima linha:

// eslint-disable-next-line no-use-before-define
var thing = new Thing();

Link dos documentos solicitados: http://eslint.org/docs/user-guide/configuring.html#configuring-rules

goofballLogic
fonte
4
Agora eu recebo outro problema eslint: aviso Comentário inesperado inline com o código no-inline-comments :( #
arcseldon
52
Funciona muito bem para mim. Além disso, se você não se importa com a especificidade, pode simplesmente fazê //eslint-disable-line-lo e parece desativar todas as regras para a linha especificada.
precisa saber é o seguinte
7
Por alguma razão, isso não funciona para mim; Estou executando o eslint 3.8.0. Eu tenho que usar / * eslint-disable * / e / * eslint-enable * /. Alguma idéia de por que isso pode ser? Eu gosto da abordagem de linha única
SomethingOn
8
@AlgoOnOn teve o mesmo problema, acabou que eu tinha --no-inline-configligado, o que éPrevent comments from changing config or rules
tibalt
4
Não está funcionando com "gulp-eslint": "^ 3.0.1". Eu tenho que usar / * eslint-disable * /
olefrank
528

Você pode usar o seguinte

/*eslint-disable */

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

/*eslint-enable */

O que está um pouco oculto na seção "regras de configuração" dos documentos ;

Para desativar um aviso para um arquivo inteiro, você pode incluir um comentário na parte superior do arquivo, por exemplo

/*eslint eqeqeq:0*/

Atualizar

O ESlint agora foi atualizado com uma maneira melhor de desativar uma única linha, consulte a excelente resposta do @ goofballLogic .

Nick Tomlin
fonte
5
BTW, parece que a //sintaxe do comentário não funciona…
MonsieurDart
Também uma nota lateral, eu estava procurando desabilitar o eslint para uma linha em html. funciona: thumbsup:
Adil H. Raza
223

Você também pode desativar uma regra / regras específicas (em vez de todas) especificando-as nos blocos ativar (abrir) e desativar (fechar):

/* eslint-disable no-alert, no-console */

alert('foo');
console.log('bar');

/* eslint-enable no-alert */

via link do goofballMagic acima: http://eslint.org/docs/user-guide/configuring.html#configuring-rules

um darren
fonte
6
Certifique-se de que seus comentários do eslint sejam aprovados no eslint! -> Expected exception block, space or tab after '/*' in comment.:)
Rimian
Eu uso uma combinação de prettiere eslintpara formatar meu código. Isso não permite comentários embutidos. Muitas /* eslint-disable-next-line ... */instruções são difíceis de ler e identificar no código.
Bernhard Döbler
78

De configuração do ESLint - Desativando regras com comentários embutidos :

/* eslint-disable no-alert, no-console */


/* eslint-disable */

alert('foo');

/* eslint-enable */


/* eslint-disable no-alert, no-console */

alert('foo');
console.log('bar');

/* eslint-enable no-alert, no-console */


/* eslint-disable */

alert('foo');


/* eslint-disable no-alert */

alert('foo');


alert('foo'); // eslint-disable-line

// eslint-disable-next-line
alert('foo');


alert('foo'); // eslint-disable-line no-alert

// eslint-disable-next-line no-alert
alert('foo');


alert('foo'); // eslint-disable-line no-alert, quotes, semi

// eslint-disable-next-line no-alert, quotes, semi
alert('foo');


foo(); // eslint-disable-line example/rule-name
James Skemp
fonte
35

Responda

Você pode usar um comentário in-line: // eslint-disable-next-line rule-name.

Exemplo

// eslint-disable-next-line no-console
console.log('eslint will ignore the no-console on this line of code');

Referência

ESLint - Desativando regras com comentários embutidos

Brylie Christopher Oxley
fonte
31

O comentário geral de fim de linha,, // eslint-disable-linenão precisa de nada depois dele: não é necessário procurar um código para especificar o que você deseja que o ES Lint ignore.

Se você precisar ter qualquer sintaxe ignorada por qualquer motivo que não seja uma depuração rápida, você terá problemas: por que não atualizar sua configuração delint?

Gosto // eslint-disable-linede permitir que eu insira consoleuma inspeção rápida de um serviço, sem que meu ambiente de desenvolvimento me retenha por causa da violação do protocolo. (Geralmente console, bani e uso uma classe de log - que às vezes se baseia console.)

LeeGee
fonte
Sem ofensas, mas esta é a mesma solução que a resposta aceita; portanto, não sabe como isso ajuda?
precisa saber é
25
Não faça isso. Se você tiver 5 erros na linha, todos serão ignorados. Sempre defina explicitamente a regra que deve ser ignorada ou as crianças farão uma bagunça.
Filip Dupanović
3
@ FilipDupanović Se seus programadores podem fazer uma bagunça em uma única linha de código, apenas porque o eslint não está olhando por cima dos ombros por uma única linha. Há realmente algo de errado na sua empresa ... Dito isto, dizer qual regra você deseja ignorar torna mais claro o motivo pelo qual você coloca a linha de desativação lá em primeiro lugar.
Edwin Stoteler
2
@ FilipDupanović Talvez o eslint deva ter uma meta regra para exigir que a regra explícita ignore? Talvez isso já aconteça.
perfil completo de Josef
1
@ Josef.B existe uma regra não padrão para isso: github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/… Funciona muito bem.
Craig Harley
13

Ou, para ignorar vários na próxima linha, amarre as regras usando vírgulas

// eslint-disable-next-line class-methods-use-this, no-unused-vars
Raymond Wachaga
fonte
9

Para desativar uma regra única para o restante do arquivo abaixo:

/* eslint no-undef: "off"*/
const uploadData = new FormData();
Farhan Salam
fonte
1
ou/* eslint-disable no-new */
Илья Зеленько
6

Para desativar todas as regras em uma linha específica:

alert('foo'); // eslint-disable-line
Debbie Ellis
fonte
1

o comentário de linha única não funcionou para mim dentro de um componente funcional react dumb, usei a desativação no nível do arquivo adicionando / * eslint-disable insertEslintErrorDefinitionHere * /

(normalmente, se você estiver usando o código vs e recebendo um erro eslint, pode clicar na linha que apresenta o erro e uma lâmpada apareceria no código vs, clique com o botão direito do mouse na lâmpada e escolha qualquer opção de desativação e o código vs fará isso por você.)

Sid
fonte
-5

Você pode adicionar os arquivos que dão erro ao arquivo .eslintignore no seu projeto. Como para todos os arquivos .vue, basta adicionar /*.vue

Yubin Shinhmar
fonte
4
ele pediu uma linha, não todo o arquivo
Kevin Danikowski
Ele também pode parar de usar o eslint ... Se você apenas ignora todos os arquivos com problemas, por que usá-los?
Ruud Verhoef