jshint and jquery: '$'は定義されていません
-
28-10-2019 - |
質問
次のJS:
(function() {
"use strict";
$("#target").click(function(){
console.log("clicked");
});
}());
利回り:
test.js: line 5, col 3, '$' is not defined.
jshint 0.5.5を使用して糸くずになったとき。何か案は?
解決
Jshintの比較的最近のバージョンを使用している場合、一般的に好ましいアプローチは、プロジェクトのルートに.jshinTrcファイルを作成し、この構成を入力することです。
{
"globals": {
"$": false
}
}
これは、jshintに$がグローバル変数であることを宣言し、falseはそれを無効にするべきではないことを示しています。
.jshintrcファイルは、Jshintの本当に古いバージョンではサポートされていませんでした(2012年の元の質問のようにv0.5.5など)。 .jshintrcファイルを使用できない、または使用したくない場合は、スクリプトファイルの上部にこれを追加できます。
/*globals $:false */
で見られるように、「jquery」jshintオプションもあります jshintオプションページ..
他のヒント
.jshintrcに2行を追加することもできます
"globals": {
"$": false,
"jQuery": false
}
これにより、Jshintは2つのグローバル変数があることを示しています。
あなたがする必要があるのは設定だけです "jquery": true
あなたの中で .jshintrc
.
あたり jshintオプションリファレンス:
jquery
このオプションは、jQuery JavaScriptライブラリによって公開されたグローバルを定義します。
これがあなたの.jshintrcに入れる幸せな小さなリストです
合格時にこのリストに追加します。
{
// other settings...
// ENVIRONMENTS
// "browser": true, // Is in most configs by default
"node": true,
// others (e.g. yui, mootools, rhino, worker, etc.)
"globals": {
"$":false,
"jquery":false,
"angular":false
// other explicit global names to exclude
},
}
WebStorm、Pycharm、Rubymine、IntellijのアイデアなどのIntellijエディターを使用している場合:
ファイル/設定/JavaScript/コード品質ツール/Jshintの環境セクションで、jQueryチェックボックスをクリックします。
通常の「jshintグローバルをオフにする」を推奨する代わりに、 モジュールパターン この問題を修正するため。それはあなたのコードを「含む」保持し、パフォーマンスを後押しします(Paul Irish'sに基づいて 「jqueryについて学んだ10のこと」).
私はこのようなモジュールパターンを書く傾向があります:
(function (window) {
// Handle dependencies
var angular = window.angular,
$ = window.$,
document = window.document;
// Your application's code
}(window))
あなたはこれらの他のパフォーマンスの利点を得ることができます(もっと説明します ここ):
- コードを模倣するとき、渡されます
window
オブジェクト宣言も削除されます。例えばwindow.alert()
なるm.alert()
. - 自己執行匿名関数内のコードは、1つのインスタンスのみを使用します
window
物体。 - 電話をかけるときに追いかけます
window
プロパティまたは方法、スコープチェーンの高価な横断を防ぐwindow.alert()
(より速い)対alert()
(遅い)パフォーマンス。 - 「名前のペース」と封じ込め(グローバルは悪です)を通じて、機能のローカル範囲。このコードを個別のスクリプトに分割する必要がある場合は、これらの各スクリプトのサブモジュールを作成し、1つのメインモジュールにインポートすることができます。
Intellij編集者を使用している場合
- 設定/設定
- JavaScript
- コード品質ツール
- jshint
- 事前定義された(下部)、クリックします 設定
- jshint
- コード品質ツール
- JavaScript
たとえば、何でも入力できます console:false
, 、そしてそれをリスト(.jshintrc)にも追加します - グローバルとして。
使用するときにこのエラーを修正します オンラインJshint実装:
- 構成](ページの中央の列の上部)をクリックします
- 「jquery」を有効にする(下部の「想定」セクションの下)
おそらく次のことをしたいのですが、
const $ = window.$
糸くずのエラーを投げることを避けるため。