Esiste un modo per sopprimere l'avviso JSHint per una determinata riga?


264

Ho evalusato un (singolo) caso nella mia app , e vorrei sopprimere l'avviso JSHint solo per questo caso.

C'è un modo per raggiungerlo? Configurazione, commento magico, ...?

Risposte:


465

Sì, c'è un modo. Due in effetti. In ottobre 2013 jshint aggiunto un modo di ignorare i blocchi di codice come questo:

// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
/* jshint ignore:end */
// Code here will be linted with JSHint.

Puoi anche ignorare una singola riga con un commento finale come questo:

ignoreThis(); // jshint ignore:line

Per chiunque cerchi di far funzionare i plug-in JSHint Sublime Text 2/3, sarà necessario aggiornare jshint specificatamente nella cartella del pacchetto ST. (In particolare mi sono imbattuto in questo con JSHint Gutter)
Josh

7
È possibile ignorare solo un errore specifico? per esempio. maxlen su quella riga specifica ma rileva ancora altri errori.
Jürgen Paul,

4
meno // jshint ignore:line;(function() { // jshint ignore:line
male

4
L'opzione "ignora" è obsoleta e viene visualizzato l'errore "opzione non valida" utilizzando la versione 0.9.9 della funzione di integrazione JSHint in eclipse. C'è un modo alternativo per fare la stessa cosa?
MidnightJava

2
Ho aggirato bad option: 'ignore'usando l' opzione specifica per la linea che voglio ignorare. Nel mio caso ho voluto ignorare if (x == null)perché voglio che sia uguale a più di solo null e utilizzato /* jshint eqnull:true */nella stessa funzione ifdi silenziare JSHint.
Nate,

102

La risposta "cattiva" non ha funzionato per me. Invece, ho usato ciò che era raccomandato nella pagina dei documenti di JSHints . Se conosci l'avviso che viene generato, puoi disattivarlo per un blocco di codice. Ad esempio, sto usando un codice di terze parti che non utilizza le funzioni del case camel, ma le mie regole JSHint lo richiedono, il che ha portato a un avviso. Per zittirlo, ho scritto:

/*jshint -W106 */
save_state(id);
/*jshint +W106 */

15
E come faccio a capire il mio numero di avviso?
11684,

3
Quando esegui jshint e ricevi inizialmente l'errore, il numero verrà segnalato.
tollmanz,

5
Oh scusa. Ho dimenticato di lasciare un commento, quindi non ho postato qualcosa dopo aver controllato i documenti. Non lo è, devi aggiungere --verboseal comando per ottenere il numero di avviso.
11684

9
In alternativa, la risposta a questa domanda correlata suggerisce di controllare messaggi.js . L'ho trovato abbastanza utile da quando utilizzo WebStorm.
Michael Jess,

3
Tutti i numeri di avviso, errore e informazioni sono disponibili qui: github.com/jshint/jshint/blob/master/src/messages.js
Anderson Arboleya,

37

Come puoi vedere nella documentazione di JSHint puoi cambiare le opzioni per funzione o per file . Nel tuo caso basta inserire un commento nel tuo file o anche più locale solo nella funzione che utilizza eval:

/*jshint evil:true */

function helloEval(str) {
    /*jshint evil:true */
    eval(str);
}

prima, questo non ha funzionato per me con 2.1.9 ma ha funzionato dopo l'aggiornamento a 2.1.11
kangax
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.