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?

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 */

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


12

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

/*global describe:true*/

Opciones


8

Agregue esto en su .jshintrc

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

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 ...


6

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

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

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.