Как сказать JSHint игнорировать все неопределенные переменные в одном файле?

в тестах кармы есть много глобальных переменных и функций, на которые жалуется JSHint (он интегрирован в мой редактор).

Как я могу сказать JSHint игнорировать все неопределенные переменные в этом конкретном файле? Я бы ожидал /* jshint undef: false */ отключить эти предупреждения, но это не так.

4 ответов


правильный способ рассказать JSHint о глобалах-использовать


столкнулся с этой проблемой, используя JSHint сегодня днем. Это исправление работает для меня. Вместо использования " глобалов "попробуйте использовать"predef". Например:

{
  /*
   * RELAXING OPTIONS
   * =================
   */

  // Suppress warnings about == null comparisons.
  "eqnull": true,

  "predef" : ["describe", "expect", "it", "inject", "beforeEach", "angular"]
}

просто добавьте это правило в свой .файл jshintrc.

"-W117": true

это проигнорирует все предупреждения, которые говорят: '* не определено.'


я обнаружил, что использую jshint ignore:line как способ решения этой потребности:

var unusedVar; / / JSHint ignore: line

это позволяет jshint продолжать свою полезную проверку для этого условия, но там, где есть явные причины игнорировать конкретное объявление, чем добавление этого как решает проблему, так и делает это таким образом, что это сразу видно любому, кто смотрит на код.

хороший пример (по крайней мере для меня), это при использовании ES6 разрушает незаконный набор ярлыков, которые вы можете или не можете использовать все время. В Ember я часто использую многие из методов, которые висят на нем, такие как typeOf и computed. Вместо того, чтобы всегда ссылаться на Ember.computed гораздо приятнее просто ссылаться на computed и иметь что-то вроде следующего в верхней части всех моих объектов Ember:

 const { computed, $, A, run, on, typeOf, debug, get, set } = Ember;    // jshint ignore:line