Sposób wyłączenia ostrzeżenia „define” nie jest zdefiniowany za pomocą JSHint i RequireJS


108

W moim projekcie używam RequireJS AMD. Kiedy uruchamiam jshint w moim projekcie, wyświetla błąd, taki jak

W skryptach AMD

 'define' is not defined.

W przypadkach testowych Mocha

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

Jak usunąć to ostrzeżenie w jshint?

Odpowiedzi:


187

Aby trochę rozwinąć, oto .jshintrckonfiguracja dla Mocha:

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

Z dokumentacji JSHint - wartość false (wartość domyślna) oznacza, że ​​zmienna jest tylko do odczytu.

Jeśli definiujesz globalne tylko dla określonego pliku, możesz to zrobić:

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

41
możemy użyć {"mocha": true} 2.5.1+ github.com/jshint/jshint/issues/1330
gwokae

@bendytree Czy wiesz, czy mogę dodać te reguły do ​​niektórych plików / folderów, które nie są globalne?
Gobliins

Komentarz @Gobliins Bohdan powyżej. Dodaj tę linię jako pierwszą linię pliku testowego mokka, a wymusi to regułę tylko dla tego pliku
Izaak


12

Aby uniknąć niezdefiniowanego ostrzeżenia w jshint dla javascript, dodaj komentarze takie jak:

/*global describe:true*/

Opcje


8

Dodaj to do swojego .jshintrc

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

Nie wiem, dlaczego ktoś to zlekceważył. Używam tego dokładnie w moich projektach i jest czystszy niż inne odpowiedzi i działa.
Shital Shah,

19
predef jest przestarzały, użyj globali
Jonathan Azulay

@JonathanAzulay Nie znalazłem żadnej notatki o wycofaniu na jshint.com/docs/options/#predef . Myślę, że Global może być używany do niestandardowego Global JavaScript, np. Angular, $, jQuery itp., A predef może być używany do niejawnych obiektów globalnych, takich jak okno, dokument, konsola itp.
Amitesh

6

spóźniłeś się na imprezę, ale użyj tej opcji w jshintrc:

"dojo": true

i będziesz spoczywał spokojnie bez czerwonych ostrzeżeń ...


6

Jeśli pracujesz na node js. Dodaj te dwie linie na początku pliku

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

To pytanie dotyczy JSHint .
PointedEars


1

Jeśli próbujesz uruchomić JSHint w WebStorm z Mocha, tak jak ja, przejdź do:

WebStorm> Preferencje> Języki i struktury> JavaScript> Narzędzia jakości kodu> JSHint

Przewiń w dół do „Środowiska” i upewnij się, że zaznaczyłeś pole wyboru, aby włączyć opcję „Mocha”, co spowoduje skonfigurowanie definicji JSHint for Mocha.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.