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.


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


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 .


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


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


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.)


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


6

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

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

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ê.)


-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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.