Comment désactiver l'avertissement 'define' n'est pas défini à l'aide de JSHint et RequireJS


108

J'utilise RequireJS AMD dans mon projet. Lorsque j'exécute jshint sur mon projet, cela génère une erreur comme

Dans les scripts AMD

 'define' is not defined.

Dans les cas de test Mocha

 'describe' is not defined.
 'it' is not defined.

Comment supprimer cet avertissement dans jshint?

Réponses:


187

Juste pour développer un peu, voici une .jshintrcconfiguration pour Mocha:

{
  ....
  "globals"   : {
    /* MOCHA */
    "describe"   : false,
    "it"         : false,
    "before"     : false,
    "beforeEach" : false,
    "after"      : false,
    "afterEach"  : false
  }
}

À partir des documents JSHint - la valeur false (par défaut) signifie que la variable est en lecture seule.

Si vous définissez des globaux uniquement pour un fichier spécifique, vous pouvez le faire:

/*global describe, it, before, beforeEach, after, afterEach */

41
nous pouvons utiliser {"mocha": true} 2.5.1+ github.com/jshint/jshint/issues/1330
gwokae

@bendytree savez-vous si je peux ajouter ces règles pour certains fichiers / dossiers non globaux?
Gobliins

Commentaire de @Gobliins Bohdan ci-dessus. Ajoutez cette ligne comme première ligne de votre fichier de test mocha et elle appliquera la règle pour ce fichier uniquement
Isaac


12

Pour éviter l'avertissement non défini dans jshint pour le javascript, ajoutez des commentaires comme:

/*global describe:true*/

Options


8

Ajoutez ceci dans votre .jshintrc

"predef" : ["define"]   // Custom globals for requirejs

Je ne sais pas pourquoi quelqu'un a voté contre cela. J'utilise cela exactement dans mes projets et est plus propre que d'autres réponses et fonctionne.
Shital Shah

19
predef est obsolète, utilisez les globals
Jonathan Azulay

@JonathanAzulay Je n'ai trouvé aucune note d' obsolescence sur jshint.com/docs/options/#predef . Je pense que Global peut être utilisé pour le JavaScript global personnalisé, par exemple angular, $, jQuery, etc. et predef peut être utilisé pour des objets globaux implicites tels que fenêtre, document, console, etc.
Amitesh

6

en retard à la fête, mais utilisez cette option dans votre jshintrc:

"dojo": true

et tu te reposeras paisiblement sans avertissements rouges ...


6

Si vous travaillez sur le nœud js. Ajoutez ces deux lignes au début de votre fichier

/*jslint node: true */
"use strict";

Cette question concerne JSHint .
PointedEars


1

Si vous essayez d'exécuter JSHint dans WebStorm avec Mocha, comme je le suis, allez dans:

WebStorm> Préférences> Langages et cadres> JavaScript> Outils de qualité du code> JSHint

Faites défiler jusqu'à "Environnements" et assurez-vous que vous avez coché la case pour activer "Mocha" qui configurera les définitions de JSHint pour Mocha pour vous.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.