如何禁用警告’定义’没有定义使用 JSHint 和 RequreJS

我在我的项目中使用 RequreJS AMD。当我在我的项目中运行 jshint 时,它会抛出如下错误

在 AMD 脚本中

 'define' is not defined.

在摩卡的测试案例中

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

如何在 jshint 中删除此警告?

60540 次浏览

Read the docs and search for /*global

To avoid the not defined warning in jshint for the javascript add comments like:

/*global describe:true*/

Options

Just to expand a bit, here's a .jshintrc setup for Mocha:

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

From the JSHint Docs - the false (the default) means the variable is read-only.

If you are defining globals only for a specific file, you can do this:

/*global describe, it, before, beforeEach, after, afterEach */

Add this in your .jshintrc

"predef" : ["define"]   // Custom globals for requirejs

late to the party, but use this option in your jshintrc:

"dojo": true

and thou shall rest peacefully without red warnings...

jshint: {
options: {
mocha: true,
}
}

is what you want

If you are working on node js. Add these two lines in the beginning of your file

/*jslint node: true */
"use strict";

If you're trying to run JSHint in WebStorm with Mocha, as I am, go into:

WebStorm > Preferences > Languages & Frameworks > JavaScript > Code Quality Tools > JSHint

Scroll down to "Environments" and make sure you have selected the checkbox to enable "Mocha" which will set up the definitions for JSHint for Mocha for you.