【问题标题】:grunt-contrib-jshint - error was used before it was definedgrunt-contrib-jshint - 在定义之前使用了错误
【发布时间】:2015-03-18 14:19:23
【问题描述】:

我在使用 Grunt-jshint 时遇到了这个问题。

我有一个 Angular 应用程序,我将我的控制器或指令定义为:

angular.module('myApp').controller('beerFormController', beerForm_controller);

beerForm_controller.$inject = ['$scope'];

function beerForm_controller($scope) {
    var vm_main = this;
    vm_main.smsCgHijo = 'some text here';
}

这是我在启动 grunt 任务后遇到的错误:

Running "jshint:files" (jshint) task
Linting app/js/directives/beerForm/beerForm_controller.js...ERROR
[L7:C29] 'beerForm_controller' was used before it was defined.

有人可以帮我吗?

有什么问题?...谢谢

【问题讨论】:

  • 我不知道角度,但 jshint 抱怨,因为你给了对象 'beerForm_controller' 属性 '$inject',然后才创建对象 'beerForm_controller' 本身。也许切换这两个语句?
  • 我也做了,但问题继续存在,我写了 latedef: 'nofunc' 但错误继续。

标签: javascript angularjs gruntjs jshint


【解决方案1】:

如消息所述,问题在于您在 beerForm_controller 函数出现在源代码之前就使用了它。这实际上不是问题,因为函数声明被提升了,但它违反了默认的 JSHint 样式指南。

您可以通过将 latedef 选项设置为 nofunc 来告诉 JSHint 允许该样式。

【讨论】:

  • 我正在使用这个 GRUNT VERSION (grunt-cli v0.1.13 - grunt v0.4.5) 和我的 jshint 任务,选项 --> latedef:'nofunc' ,说我继续同样的错误。怎么可能解决?谢谢
猜你喜欢
  • 2016-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多