Disattivazione della regola eslint per una riga specifica


1346

Per disattivare la regola del linting per una particolare riga in JSHint usiamo la seguente regola:

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

Ho cercato di individuare l'equivalente di quanto sopra per eslint.


86
Usa eslint-disable-next-line:
Brylie Christopher Oxley

A partire da ESLint v7, è possibile specificare il motivo per disabilitare una determinata regola nello stesso commento.
Dan Dascalescu

Risposte:


2157

Ora puoi usare la sintassi a riga singola:

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

function Thing() {

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

}

Oppure, se non si desidera avere un commento sulla stessa riga con il codice effettivo, è possibile disabilitare la riga successiva:

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

Link alla documentazione richiesta: http://eslint.org/docs/user-guide/configuring.html#configuring-rules


4
Ora ho un altro problema eslint: avviso Commento inatteso in linea con il codice no-inline-commenti :(
arcseldon

52
Funziona benissimo per me. Inoltre, se non ti interessa la specificità, puoi semplicemente farlo //eslint-disable-linee sembra disabilitare tutte le regole per la determinata riga.
KhalilRavanna,

7
Per qualche motivo questo non funziona per me; Sto eseguendo eslint 3.8.0. Devo usare / * eslint-disable * / e / * eslint-enable * /. Qualche idea sul perché questo potrebbe essere? Mi piace l'approccio a linea singola
SomethingOn

8
@SomethingOn ha avuto lo stesso problema, ho scoperto che avevo --no-inline-configacceso, chePrevent comments from changing config or rules
tibalt

4
Non funziona con "gulp-eslint": "^ 3.0.1". Devo usare / * eslint-disable * /
olefrank il

530

È possibile utilizzare quanto segue

/*eslint-disable */

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

/*eslint-enable */

Che è leggermente sepolto nella sezione "regole di configurazione" dei documenti ;

Per disabilitare un avviso per un intero file, è possibile includere un commento nella parte superiore del file, ad es

/*eslint eqeqeq:0*/

Aggiornare

ESlint ora è stato aggiornato con un modo migliore di disabilitare una singola riga, vedi l' eccellente risposta di @ goofballLogic .


5
A proposito, sembra che la //sintassi del commento non funzioni ...
MonsieurDart

Anche una nota a margine, stavo cercando di disabilitare eslint per una riga in HTML. funziona: thumbsup:
Adil H. Raza,

223

Puoi anche disabilitare una o più regole specifiche (piuttosto che tutte) specificandole nei blocchi di abilitazione (apertura) e disabilitazione (chiusura):

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

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

/* eslint-enable no-alert */

tramite il link @ goofballMagic sopra: http://eslint.org/docs/user-guide/configuring.html#configuring-rules


6
Assicurati che i tuoi commenti eslint passino eslint! -> Expected exception block, space or tab after '/*' in comment.:)
Rimian il

Uso una combinazione di prettiere eslintper formattare il mio codice. Ciò non consente commenti incorporati. Molte /* eslint-disable-next-line ... */istruzioni sono difficili da leggere e individuare nel codice.
Bernhard Döbler,

78

Dalla configurazione di ESLint - Disabilitazione delle regole con commenti incorporati :

/* 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

Il commento generale di fine riga // eslint-disable-line, non ha bisogno di nulla dopo di esso: non è necessario cercare un codice per specificare ciò che ES Lint deve ignorare.

Se è necessario ignorare la sintassi per qualsiasi motivo diverso da un debug rapido, si verificano problemi: perché non aggiornare la configurazione del delta?

Mi piace // eslint-disable-linepermettermi di inserirmi consoleper una rapida ispezione di un servizio, senza che il mio ambiente di sviluppo mi trattenga a causa della violazione del protocollo. (Generalmente bandisco consolee utilizzo una classe di registrazione - che a volte si basa su console.)


Senza offesa, ma questa è la stessa soluzione della risposta accettata, quindi non sei sicuro di come questo aiuti?
un darren il

25
Non farlo. Se hai 5 errori sulla linea, verranno tutti ignorati. Imposta sempre esplicitamente la regola che deve essere ignorata, altrimenti i bambini faranno casino.
Filip Dupanović,

3
@ FilipDupanović Se i tuoi programmatori possono fare un pasticcio all'interno di una singola riga di codice, solo perché eslint non sta cercando una singola riga. C'è davvero qualcos'altro che non va nella tua azienda ... Detto questo, dire quale regola desideri ignorare rende più chiaro il motivo per cui hai messo la linea di disabilitazione lì in primo luogo.
Edwin Stoteler,

2
@ FilipDupanović Forse eslint dovrebbe avere una meta regola per richiedere una regola esplicita da ignorare? Forse lo fa già.
Josef.B,

1
@ Josef.B c'è una regola non standard per questo: github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/… Funziona davvero bene.
Craig Harley,

13

O per più ignori sulla riga successiva, stringa le regole usando le virgole

// eslint-disable-next-line class-methods-use-this, no-unused-vars


6

Per disabilitare tutte le regole su una riga specifica:

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

1

il commento a riga singola non ha funzionato per me all'interno di un componente funzionale stupido, ho usato la disabilitazione a livello di file aggiungendo / * eslint-disable insertEslintErrorDefinitionHere * /

(normalmente se stai usando il codice vs e stai ottenendo un errore eslint, puoi fare clic sulla riga che dà errore e una lampadina verrebbe visualizzata nel codice vs, fare clic destro sulla lampadina e scegliere qualsiasi opzione di disabilitazione e il codice vs lo farà per voi.)


-5

Puoi aggiungere i file che danno errore al file .eslintignore nel tuo progetto. Come per tutti i file .vue basta aggiungere /*.vue


4
chiedeva una riga, non l'intero file
Kevin Danikowski il

Potrebbe anche smettere di usare eslint ... Se stai per ignorare tutti i file che hanno problemi, perché usarli?
Ruud Verhoef,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.