108
votes

I uses RequireJS AMD in my project. When i run jshint on my project, it throws error like

In AMD Scripts

 'define' is not defined.

In Mocha test cases

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

How to remove this warning in jshint?

8

8 Answers

187
votes

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 */
16
votes
jshint: {
  options: {
    mocha: true,
  }
}

is what you want

12
votes

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

/*global describe:true*/

Options

8
votes

Add this in your .jshintrc

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

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

"dojo": true

and thou shall rest peacefully without red warnings...

6
votes

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

/*jslint node: true */
"use strict";
3
votes
1
votes

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.