JSHint (r10): 'angular' is not defined

2019-01-21 22:23发布

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?

2条回答
手持菜刀,她持情操
2楼-- · 2019-01-21 22:29
  • 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.

查看更多
▲ chillily
3楼-- · 2019-01-21 22:46

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"]
}
查看更多
登录 后发表回答