Как отключить предупреждение 'define' не определяется с помощью JSHint и RequireJS

108

В своем проекте я использую RequireJS AMD. Когда я запускаю jshint в своем проекте, он выдает ошибку, например

В скриптах AMD

 'define' is not defined.

В тестовых примерах Mocha

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

Как убрать это предупреждение в jshint?

Физер Хан
источник

Ответы:

187

Просто чтобы немного расширить, вот .jshintrcустановка для Mocha:

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

Из документов JSHint - false (по умолчанию) означает, что переменная только для чтения.

Если вы определяете глобальные объекты только для определенного файла, вы можете сделать это:

/*global describe, it, before, beforeEach, after, afterEach */
Bendytree
источник
41
мы можем использовать {"mocha": true} 2.5.1+ github.com/jshint/jshint/issues/1330
gwokae
@bendytree, знаете ли вы, могу ли я добавить эти правила для некоторых файлов / папок, не являющихся глобальными?
Gobliins
Комментарий @Gobliins Bohdan выше. Добавьте эту строку в качестве первой строки вашего тестового файла мокко, и она будет применять правило только для этого файла
Исаак
15
jshint: {
  options: {
    mocha: true,
  }
}

это то, что ты хочешь

Грант Фонг
источник
12

Чтобы избежать неопределенного предупреждения в jshint для javascript, добавьте комментарии вроде:

/*global describe:true*/

Параметры

Роланд Пунтайер
источник
8

Добавьте это в свой .jshintrc

"predef" : ["define"]   // Custom globals for requirejs
Шитал Шах
источник
Не уверен, почему кто-то проголосовал против этого. Я использую это именно в своих проектах и ​​чище, чем другие ответы и работы.
Шитал Шах
19
Pref is depreceted, используйте глобальные переменные
Джонатан Азулай,
@JonathanAzulay Я не нашел заметок об устаревании на jshint.com/docs/options/#predef . Я думаю, что Global можно использовать для настраиваемого глобального JavaScript, например angular, $, jQuery и т. Д., А Pref можно использовать для неявных глобальных объектов, таких как окно, документ, консоль и т. Д.
Амитеш
6

поздно на вечеринку, но используйте эту опцию в своем jshintrc :

"dojo": true

и ты будешь спокойно отдыхать без красных предупреждений ...

Гилад Пелег
источник
6

Если вы работаете с node js. Добавьте эти две строки в начало вашего файла

/*jslint node: true */
"use strict";
Salihcenap
источник
Этот вопрос касается JSHint .
PointedEars
1

Если вы пытаетесь запустить JSHint в WebStorm с помощью Mocha, как я, зайдите в:

WebStorm> Настройки> Языки и платформы> JavaScript> Инструменты качества кода> JSHint

Прокрутите вниз до «Среды» и убедитесь, что вы установили флажок, чтобы включить «Mocha», который настроит для вас определения JSHint для Mocha.

ньяраша
источник