Das Deaktivieren der Warnung 'define' wird nicht mit JSHint und RequireJS definiert


108

Ich verwende RequireJS AMD in meinem Projekt. Wenn ich jshint auf meinem Projekt ausführe, wirft es Fehler wie

In AMD-Skripten

 'define' is not defined.

In Mokka-Testfällen

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

Wie entferne ich diese Warnung in jshint?

Antworten:


187

Um ein bisschen zu erweitern, hier ein .jshintrcSetup für Mocha:

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

Aus den JSHint-Dokumenten bedeutet "false" (Standardeinstellung), dass die Variable schreibgeschützt ist.

Wenn Sie Globals nur für eine bestimmte Datei definieren, können Sie Folgendes tun:

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

41
wir können {"mocha": true} 2.5.1+ verwenden github.com/jshint/jshint/issues/1330
gwokae

@ Bendytree Weißt du, ob ich diese Regeln für einige Dateien / Ordner hinzufügen kann, die nicht global sind?
Gobliins

@ Gobliins Bohdans Kommentar oben. Fügen Sie diese Zeile als erste Zeile Ihrer Mokka-Testdatei hinzu und es wird nur die Regel für diese Datei durchgesetzt
Isaac


12

Um die nicht definierte Warnung in jshint für das Javascript zu vermeiden, fügen Sie Kommentare hinzu wie:

/*global describe:true*/

Optionen


8

Fügen Sie dies in Ihre .jshintrc ein

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

Ich bin mir nicht sicher, warum jemand dies abgelehnt hat. Ich verwende dies genau in meinen Projekten und bin sauberer als andere Antworten und funktioniert.
Shital Shah

19
Predef ist veraltet, verwenden Sie Globals
Jonathan Azulay

@ JonathanAzulay Ich habe unter jshint.com/docs/options/#predef keinen Verfallshinweis gefunden . Ich denke, Global kann für benutzerdefiniertes globales JavaScript verwendet werden, z. B. Angular, $, jQuery usw., und Predef kann für implizite globale Objekte wie Fenster, Dokument, Konsole usw. verwendet werden
Amitesh

6

zu spät zur Party, aber verwenden Sie diese Option in Ihrem jshintrc:

"dojo": true

und du sollst friedlich ruhen ohne rote Warnungen ...


6

Wenn Sie an Knoten js arbeiten. Fügen Sie diese beiden Zeilen am Anfang Ihrer Datei hinzu

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

Diese Frage bezieht sich auf JSHint .
PointedEars


1

Wenn Sie versuchen, JSHint in WebStorm mit Mocha auszuführen, gehen Sie wie folgt vor:

WebStorm> Einstellungen> Sprachen und Frameworks> JavaScript> Tools für die Codequalität> JSHint

Scrollen Sie nach unten zu "Umgebungen" und stellen Sie sicher, dass Sie das Kontrollkästchen aktiviert haben, um "Mokka" zu aktivieren, mit dem die Definitionen für JSHint für Mokka für Sie eingerichtet werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.