Karmaテストには、JSHintが不満を言っている(私のエディターに統合されている)多くのグローバル変数と関数があります。
この特定のファイル内の未定義の変数をすべて無視するようにJSHintに指示するにはどうすればよいですか? /* jshint undef: false */
これらの警告をオフにしますが、そうではありません。
グローバルについてJSHintに伝える正しい方法は、globals
ディレクティブを使用することです。例えば:
/*globals globalFunction, anotherGlobal, oneMore */
これにより、JSHintがリストされた識別子のいずれかを検出したときに「{a} is not defined」という警告が表示されなくなります。
あるいは、そのファイルでall "not defined"警告を本当に無視し、JSHint 1.0.0以降を使用している場合は、その特定の警告を単にオフにすることができます。
/*jshint -W117 */
このルールを.jshintrcファイルに追加するだけです。
"-W117": true
これは、「*は定義されていません」という警告をすべて無視します。
今日の午後、jshintを使用してこの問題に遭遇しました。この次の修正は私のために働いた。 「グローバル」を使用する代わりに、「predef」を使用してみてください。例えば:
{
/*
* RELAXING OPTIONS
* =================
*/
// Suppress warnings about == null comparisons.
"eqnull": true,
"predef" : ["describe", "expect", "it", "inject", "beforeEach", "angular"]
}
このニーズに対処する方法としてjshint ignore:line
を使用していることに気付きました。
var usedVar; // jshint ignore:line
これによりjshintはこの条件の有用なチェックを継続できますが、これを追加するよりも特定の宣言を無視する明確な理由がある場合、問題に対処し、コードを見ている人にはすぐにわかる方法でそれを行います。
良い例(少なくとも私にとって)は、ES6の破壊を使用して、常に使用する場合と使用しない場合があるショートカットのセットを違法にする場合です。 Emberでは、typeOf
やcomputed
など、多くのメソッドを使用しています。常にEmber.computed
を参照するよりも、単にcomputed
を参照し、すべてのmy Emberオブジェクトの先頭に次のようなものを含める方がはるかに優れています。
const { computed, $, A, run, on, typeOf, debug, get, set } = Ember; // jshint ignore:line