以下JS:

(function() {
  "use strict";

  $("#target").click(function(){
    console.log("clicked");
  });

}());

收益率:

test.js: line 5, col 3, '$' is not defined.

当使用JSHint 0.5.5检测时。什么好主意吗?


当前回答

下面是一个可以放在.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
  },
}

其他回答

如果你正在使用一个相对较新的JSHint版本,通常首选的方法是在你的项目的根目录下创建一个.jshintrc文件,并将以下配置放在其中:

{
    "globals": {
        "$": false
    }
}

这向JSHint声明$是一个全局变量,false表示它不应该被覆盖。

.jshintrc文件在真正旧的JSHint版本中不受支持(例如v0.5.5,就像2012年的原始问题一样)。如果你不能或不想使用.jshintrc文件,你可以在脚本文件的顶部添加这个:

/*globals $:false */

还有一个简写“jquery”jshint选项,在jshint选项页面上可以看到。

你可能想做以下事情,

const $ = window.$

避免它抛出linting错误。

你所需要做的就是在.jshintrc中设置"jquery": true。

根据JSHint选项引用:

jquery 这个选项定义了由jQuery JavaScript库公开的全局变量。

还可以在.jshintrc中添加两行

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

这告诉jshint有两个全局变量。

如果你正在使用IntelliJ编辑器,如WebStorm, PyCharm, RubyMine或IntelliJ IDEA:

在文件/设置/JavaScript/代码质量工具/JSHint的环境部分,单击jQuery复选框。