Cómo deshabilitar la advertencia 'definir' no está definido usando JSHint y RequireJS

108

Utilizo RequireJS AMD en mi proyecto. Cuando ejecuto jshint en mi proyecto, arroja un error como

En los scripts de AMD

 'define' is not defined.

En casos de prueba de Mocha

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

¿Cómo eliminar esta advertencia en jshint?

Fizer Khan
fuente

Respuestas:

187

Solo para expandir un poco, aquí hay una .jshintrcconfiguración para Mocha:

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

De JSHint Docs : el falso (el valor predeterminado) significa que la variable es de solo lectura.

Si está definiendo globales solo para un archivo específico, puede hacer esto:

/*global describe, it, before, beforeEach, after, afterEach */
bendytree
fuente
41
podemos usar {"mocha": true} 2.5.1+ github.com/jshint/jshint/issues/1330
gwokae
@bendytree, ¿sabe si puedo agregar estas reglas para algunos archivos / carpetas no globales?
Gobliins
Comentario de @Gobliins Bohdan arriba. Agregue esa línea como la primera línea de su archivo de prueba de mocha y hará cumplir la regla solo para ese archivo
Isaac
15
jshint: {
  options: {
    mocha: true,
  }
}

es lo que quieres

Grant Fong
fuente
12

Para evitar la advertencia no definida en jshint para javascript, agregue comentarios como:

/*global describe:true*/

Opciones

Roland Puntaier
fuente
8

Agregue esto en su .jshintrc

"predef" : ["define"]   // Custom globals for requirejs
Shital Shah
fuente
No estoy seguro de por qué alguien rechazó esto. Estoy usando esto exactamente en mis proyectos y es más limpio que otras respuestas y trabajos.
Shital Shah
19
PREDEF se depreceted, variables globales de uso
Jonathan Azulay
@JonathanAzulay No encontré ninguna nota de desaprobación en jshint.com/docs/options/#predef . Creo que Global se puede usar para JavaScript global personalizado, por ejemplo, angular, $, jQuery, etc. y predef se puede usar para objetos globales implícitos como ventana, documento, consola, etc.
Amitesh
6

tarde a la fiesta, pero usa esta opción en tu jshintrc:

"dojo": true

y descansarás en paz sin advertencias rojas ...

Gilad Peleg
fuente
6

Si está trabajando en node js. Agregue estas dos líneas al comienzo de su archivo

/*jslint node: true */
"use strict";
salihcenap
fuente
Esta pregunta es sobre JSHint .
PointedEars
1

Si está intentando ejecutar JSHint en WebStorm con Mocha, como yo, vaya a:

WebStorm> Preferencias> Idiomas y marcos> JavaScript> Herramientas de calidad de código> JSHint

Desplácese hacia abajo hasta "Entornos" y asegúrese de haber seleccionado la casilla de verificación para habilitar "Mocha", que configurará las definiciones de JSHint para Mocha para usted.

nyarasha
fuente