Come disabilitare l'avviso "define" non è definito utilizzando JSHint e RequireJS


108

Uso RequireJS AMD nel mio progetto. Quando eseguo jshint sul mio progetto, genera un errore come

Negli script AMD

 'define' is not defined.

Nei casi di test Mocha

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

Come rimuovere questo avviso in jshint?

Risposte:


187

Solo per espandere un po ', ecco una .jshintrcconfigurazione per Mocha:

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

Da JSHint Docs - il falso (il valore predefinito) significa che la variabile è di sola lettura.

Se stai definendo le variabili globali solo per un file specifico, puoi farlo:

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

41
possiamo usare {"mocha": true} 2.5.1+ github.com/jshint/jshint/issues/1330
gwokae

@ bendytree sai se posso aggiungere queste regole per alcuni file / cartelle non globali?
Gobliins

Il commento di @Gobliins Bohdan sopra. Aggiungi quella riga come prima riga del tuo file di prova mocha e applicherà la regola solo per quel file
Isaac


12

Per evitare l'avviso non definito in jshint per javascript aggiungi commenti come:

/*global describe:true*/

Opzioni


8

Aggiungilo nel tuo .jshintrc

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

Non sono sicuro del motivo per cui qualcuno ha votato in basso Lo sto usando esattamente nei miei progetti ed è più pulito di altre risposte e funziona.
Shital Shah

19
predef è deprecato, usa globals
Jonathan Azulay

@JonathanAzulay Non ho trovato alcuna nota di deprecazione su jshint.com/docs/options/#predef . Penso che Global possa essere utilizzato per JavaScript globale personalizzato, ad esempio angular, $, jQuery ecc. E predef possono essere utilizzati per oggetti globali impliciti come finestra, documento, console ecc.
Amitesh

6

in ritardo alla festa, ma usa questa opzione nel tuo jshintrc:

"dojo": true

e riposerai pacificamente senza avvertimenti rossi ...


6

Se stai lavorando su node js. Aggiungi queste due righe all'inizio del file

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

Questa domanda riguarda JSHint .
Orecchie a punta


1

Se stai cercando di eseguire JSHint in WebStorm con Mocha, come me, vai in:

WebStorm> Preferenze> Lingue e framework> JavaScript> Strumenti per la qualità del codice> JSHint

Scorri verso il basso fino a "Ambienti" e assicurati di aver selezionato la casella di controllo per abilitare "Mocha" che imposterà le definizioni per JSHint per Mocha per te.

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.