Existe-t-il un moyen de supprimer l'avertissement JSHint pour une ligne donnée?

264

J'ai un (seul) cas dans mon application evalutilisé et je souhaite supprimer l'avertissement JSHint uniquement pour ce cas.

Y a-t-il un moyen d'y parvenir? Configuration, commentaire magique, ...?

Mike Aski
la source

Réponses:

465

Oui, il existe un moyen. Deux en fait. En octobre 2013, jshint a ajouté un moyen d'ignorer les blocs de code comme celui-ci:

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

Vous pouvez également ignorer une seule ligne avec un commentaire de fin comme celui-ci:

ignoreThis(); // jshint ignore:line
Jason Punyon
la source
Pour quiconque essaie de faire fonctionner les plugins JSHint Sublime Text 2/3, vous devrez mettre à niveau jshint spécifiquement dans le dossier du package ST. (J'ai spécifiquement rencontré JSHint Gutter)
Josh
7
Est-il possible d'ignorer une erreur spécifique uniquement? par exemple. maxlen sur cette ligne spécifique détecte encore d'autres erreurs.
Jürgen Paul
4
Dieu merci pour // jshint ignore:line- fonctionne très bien avec;(function() { // jshint ignore:line
Katy Lavallee
4
L'option "ignorer" est déconseillée et j'obtiens l'erreur "mauvaise option" en utilisant la version 0.9.9 de la fonction d'intégration JSHint dans eclipse. Existe-t-il une autre façon de faire la même chose?
MidnightJava
2
Je me suis déplacé bad option: 'ignore'en utilisant l' option spécifique pour la ligne que je veux ignorer. Dans mon cas, je voulais ignorer if (x == null)parce que je veux qu'il soit égal à plus que null et utilisé /* jshint eqnull:true */dans la même fonction que ifpour faire taire JSHint.
Nate
102

La réponse "diabolique" n'a pas fonctionné pour moi. Au lieu de cela, j'ai utilisé ce qui était recommandé sur la page des documents JSHints . Si vous connaissez l'avertissement qui est lancé, vous pouvez le désactiver pour un bloc de code. Par exemple, j'utilise du code tiers qui n'utilise pas les fonctions de cas de chameau, mais mes règles JSHint l'exigent, ce qui a conduit à un avertissement. Pour le faire taire, j'ai écrit:

/*jshint -W106 */
save_state(id);
/*jshint +W106 */
tollmanz
la source
15
Et comment calculer mon numéro d'avertissement?
11684
3
Lorsque vous exécutez jshint et obtenez l'erreur initialement, le nombre sera signalé.
tollmanz
5
Oh pardon. J'ai oublié d'avoir laissé un commentaire, donc je n'ai pas posté quelque chose après avoir vérifié les documents. Ce n'est pas le cas, vous devez ajouter --verboseà la commande pour obtenir le numéro d'avertissement.
11684
9
Alternativement, la réponse à cette question connexe suggère de vérifier messages.js . J'ai trouvé cela très utile depuis que j'utilise WebStorm.
Michael Jess
3
Tous les numéros d'avertissement, d'erreur et d'informations peuvent être trouvés ici: github.com/jshint/jshint/blob/master/src/messages.js
Anderson Arboleya
37

Comme vous pouvez le voir dans la documentation de JSHint, vous pouvez modifier les options par fonction ou par fichier . Dans votre cas, placez simplement un commentaire dans votre fichier ou encore plus local juste dans la fonction qui utilise eval:

/*jshint evil:true */

function helloEval(str) {
    /*jshint evil:true */
    eval(str);
}
Odi
la source
fwiw, cela n'a pas fonctionné pour moi avec 2.1.9 mais a fonctionné après la mise à niveau vers 2.1.11
kangax