如何禁用警告'define'未使用JSHint和RequireJS定义

Fiz*_*han 108 javascript amd requirejs jshint

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

在AMD Scripts中

 'define' is not defined.
Run Code Online (Sandbox Code Playgroud)

在摩卡测试案例中

 'describe' is not defined.
 'it' is not defined.
Run Code Online (Sandbox Code Playgroud)

如何在jshint中删除此警告?

ben*_*ree 187

只是为了扩展一下,这里是.jshintrcMocha 的设置:

{
  ....
  "globals"   : {
    /* MOCHA */
    "describe"   : false,
    "it"         : false,
    "before"     : false,
    "beforeEach" : false,
    "after"      : false,
    "afterEach"  : false
  }
}
Run Code Online (Sandbox Code Playgroud)

JSHint Docs - false(默认值)表示变量是只读的.

如果仅为特定文件定义全局变量,则可以执行以下操作:

/*global describe, it, before, beforeEach, after, afterEach */
Run Code Online (Sandbox Code Playgroud)

  • 我们可以使用`{"mocha":true}`2.5.1+ https://github.com/jshint/jshint/issues/1330 (40认同)

小智 15

jshint: {
  options: {
    mocha: true,
  }
}
Run Code Online (Sandbox Code Playgroud)

是你想要的


Rol*_*ier 12

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

/*global describe:true*/
Run Code Online (Sandbox Code Playgroud)

选项


Shi*_*hah 8

在.jshintrc中添加它

"predef" : ["define"]   // Custom globals for requirejs
Run Code Online (Sandbox Code Playgroud)

  • predef是depreceted,使用全局变量 (19认同)

Gil*_*leg 6

晚会,但在你的使用中使用此选项jshintrc:

"dojo": true
Run Code Online (Sandbox Code Playgroud)

如果没有红色警告,你将安静地休息......


sal*_*nap 5

如果您正在处理节点js.在文件的开头添加这两行

/*jslint node: true */
"use strict";
Run Code Online (Sandbox Code Playgroud)