[Grunt & Yeoman] Grunt: 正しい順番で jQuery を読み込んでいるのに jshint に「’$’ is not defined.」と言われる場合の対処

Contents

症状

別ファイルにスクリプトを用意して grunt jshint をまわすと、jQuery が見つからないと怒られた。

Running "jshint:dev" (jshint) task
Linting src/js/top.js ...ERROR
[L29:C1] W117: '$' is not defined.
$(function() {

こんな順番で読んでいるので問題ない。

<script src="/vendor/jquery.min.js"></script>
<script src="/js/main.min.js"></script>

対応

jshint でエラーが出ないように設定しておく。

どちらかの方法で。

スクリプトの先頭に追記する

/js/main.min.js
/*global $:false */

.jshintrc に追記する

自分はこんな感じにしておいた。

.jshintrc
  "globals": {
    "$": false,
    "jQuery": false
  }