Как отключить предупреждение '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 */

41
мы можем использовать {"mocha": true} 2.5.1+ github.com/jshint/jshint/issues/1330
gwokae

@bendytree, знаете ли вы, могу ли я добавить эти правила для некоторых файлов / папок, не являющихся глобальными?
Gobliins

Комментарий @Gobliins Bohdan выше. Добавьте эту строку в качестве первой строки вашего тестового файла мокко, и она будет применять правило только для этого файла
Исаак



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";

Этот вопрос касается JSHint .
PointedEars


1

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.