如何禁用警告“定义”未使用 JSHint 和 RequireJS 定义

IT技术 javascript requirejs amd jshint
2021-03-19 18:54:18

我在我的项目中使用 RequireJS AMD。当我在我的项目上运行 jshint 时,它会抛出类似的错误

在 AMD 脚本中

 'define' is not defined.

在摩卡测试用例中

 'describe' is not defined.
 'it' is not defined.

如何在 jshint 中删除此警告?

6个回答

稍微扩展一下,这是.jshintrcMocha设置:

{
  ....
  "globals"   : {
    /* MOCHA */
    "describe"   : false,
    "it"         : false,
    "before"     : false,
    "beforeEach" : false,
    "after"      : false,
    "afterEach"  : false
  }
}

来自JSHint Docs - false(默认值)表示该变量是只读的。

如果您只为特定文件定义全局变量,您可以这样做:

/*global describe, it, before, beforeEach, after, afterEach */
我们可以使用{"mocha": true} 2.5.1+ github.com/jshint/jshint/issues/1330
2021-05-12 18:54:18
@Gobliins Bohdan 上面的评论。将该行添加为 mocha 测试文件的第一行,它将仅对该文件执行规则
2021-05-15 18:54:18
@bendytree 你知道我是否可以为某些非全局文件/文件夹添加这些规则吗?
2021-05-18 18:54:18
jshint: {
  options: {
    mocha: true,
  }
}

是你想要的

为了避免在 jshint 中为 javascript 添加未定义的警告,添加如下注释:

/*global describe:true*/

选项

将此添加到您的 .jshintrc

"predef" : ["define"]   // Custom globals for requirejs
@JonathanAzulay 我在jshint.com/docs/options/#predef 上没有找到任何弃用说明我认为 Global 可用于自定义全局 JavaScript,例如 angular、$、jQuery 等,predef 可用于隐式全局对象,如窗口、文档、控制台等
2021-05-02 18:54:18
predef 已弃用,请使用全局变量
2021-05-12 18:54:18

聚会迟到,但在您的jshintrc

"dojo": true

你将安息,没有红色警告......