Como desativar o aviso 'definir' não é definido usando JSHint e RequireJS


108

Eu uso o RequireJS AMD em meu projeto. Quando executo o jshint no meu projeto, ele gera um erro como

Em scripts AMD

 'define' is not defined.

Em casos de teste Mocha

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

Como remover esse aviso no jshint?

Respostas:


187

Só para expandir um pouco, aqui está uma .jshintrcconfiguração para o Mocha:

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

Dos documentos JSHint - o falso (o padrão) significa que a variável é somente leitura.

Se estiver definindo globais apenas para um arquivo específico, você pode fazer o seguinte:

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

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

@bendytree você sabe se posso adicionar essas regras para alguns arquivos / pastas não globais?
Gobliins

Comentário de @Gobliins Bohdan acima. Adicione essa linha como a primeira linha do seu arquivo de teste mocha e isso aplicará a regra apenas para esse arquivo
Isaac


12

Para evitar o aviso não definido em jshint para o javascript, adicione comentários como:

/*global describe:true*/

Opções


8

Adicione isso ao seu .jshintrc

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

Não sei por que alguém votou contra isso. Estou usando isso exatamente em meus projetos e é mais limpo do que outras respostas e obras.
Shital Shah

19
Predef está obsoleto, use globals
Jonathan Azulay

@JonathanAzulay Não encontrei nenhuma nota de depreciação em jshint.com/docs/options/#predef . Eu acho que Global pode ser usado para JavaScript Global customizado, por exemplo angular, $, jQuery etc e predef pode ser usado para objetos globais implícitos como janela, documento, console etc
Amitesh

6

atrasado para a festa, mas use esta opção em jshintrc:

"dojo": true

e tu deves descansar em paz sem avisos vermelhos ...


6

Se você estiver trabalhando no node js. Adicione essas duas linhas no início do seu arquivo

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

Esta pergunta é sobre JSHint .
PointedEars de


1

Se você está tentando executar JSHint no WebStorm com Mocha, como estou, vá para:

WebStorm> Preferências> Idiomas e estruturas> JavaScript> Ferramentas de qualidade de código> JSHint

Role para baixo até "Ambientes" e certifique-se de ter selecionado a caixa de seleção para habilitar "Mocha", que configurará as definições de JSHint para Mocha para você.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.