39

I have the following:

angular.module('test')
    .controller('TestMenuController',
    [
        '$http',
        '$scope',
        '$resource',
        '$state',
        'os',
        'us',
    function (
        $http,
        $scope,
        $resource,
        $state,
        os,
        us) {

When I build this in VS2014 it gives me an error message saying:

JSHint (r10): 'angular' is not defined. 

Can someone tell me how I can avoid this message coming up?

Jayantha Lal Sirisena
  • 21,216
  • 11
  • 71
  • 92
Samantha J T Star
  • 30,952
  • 84
  • 245
  • 427
  • How are you importing the module into the page? – Joachim Isaksson Dec 30 '13 at 09:57
  • I think you just need to add angular.js to your _references.js file – Beyers Dec 30 '13 at 10:19
  • possible duplicate of [How to disable the warning 'define' is not defined using JSHint and RequireJS](http://stackoverflow.com/questions/16260779/how-to-disable-the-warning-define-is-not-defined-using-jshint-and-requirejs) – Nix Dec 30 '13 at 11:03

2 Answers2

90

One way to tackle this is to modify your .jshintrc and set angular as one of the predefined variables, as Jayantha said.

.jshintrc would look like this:

{
  "predef": ["angular"]
}
Nicholas Pufal
  • 2,175
  • 20
  • 23
  • 1
    -1 because predef is now deprecated. See https://stackoverflow.com/questions/22551402/difference-between-globals-and-predef-in-jshintrc – Ed Greaves Oct 25 '18 at 16:21
13
  • One approach would be adding 'angular' as a global variable in the config options,
  • or another by setting the config options 'jshintrc' path to .jshintrc
  • documentation (different ways to configure jshint options)

If you're using grunt..

  //------------------------//
  // jshint
  //------------------------//
  /**
   * JSHint: configurations
   * https://github.com/gruntjs/grunt-contrib-jshint
   */
  jshint: {
    options: {
      jshintrc: '.jshintrc',
      jshintignore: '.jshintignore',
      reporter: require('jshint-stylish')
    },
    gruntfile: {
      src: 'Gruntfile.js'
    },
    scripts: {
      src: '<%= project.scripts %>/**/*.js'
    },
    all: [
      'Gruntfile.js',
      '<%= project.js %>/*.js',
      '<%= project.scripts %>/**/*.js',
      'test/**/*.js'
    ]
  },

and in .jshintrc (at root dir) contains my following options

{
  "curly"   : true,
  "eqeqeq"  : true,
  "undef"   : true,
  "jquery"  : true,

  // global variables
  "globals": {
    "angular"   : false,
    "jasmine"   : false,
    "$"         : false,
    "_"         : false,
    "module"    : false,
    "require"   : false
  }
}

Hope this helps.

daxeh
  • 1,083
  • 8
  • 12