在AngularJS和Controllers中使用jshint

use*_*007 7 jshint angularjs

我正在尝试将JSHint合并到我的构建过程中.我正在构建的应用程序使用AngularJS.目前,我有一个冲突,我不知道如何解决.当我构建我的应用程序时,我收到一个JSHint错误,上面写着:

   src\app\app.js
      3 |var myApp = angular.module('myApp', []);
             ^ Redefinition of 'myApp'.

>> 1 error in 2 files
Warning: Task "jshint:source" failed. Use --force to continue.
Run Code Online (Sandbox Code Playgroud)

我收到此错误,因为在我的.jshintrc文件中,我有以下内容:

"predef":["angular","myApp"],

如果我删除"myApp",我会收到一个不同的错误:

src\app\account\welcome.html.js
   3 |myApp.controller('WelcomeController', ['$scope', function($scope) {
      ^ 'myApp' is not defined.

1 error in 2 files
Run Code Online (Sandbox Code Playgroud)

我定义这样的控制器的原因是因为根据AngularJS文档,您不应该在全局范围内定义控制器.正如你所看到的,如果我这样做,就像我该死的那样,如果我不这样做,那该死的.在构建过程中仍然包含JSHint时,如何遵循AngularJS最佳建议?

谢谢!

Ste*_*how 11

我想你可以用.jshintrc文件中的全局键修复它

{
    "node": true,
    "browser": true,
    "esnext": true,
    "bitwise": true,
    "camelcase": true,
    "curly": true,
    "eqeqeq": true,
    "immed": true,
    "indent": 4,
    "latedef": true,
    "newcap": true,
    "noarg": true,
    "quotmark": "single",
    "undef": true,
    "unused": true,
    "strict": true,
    "trailing": true,
    "smarttabs": true,
    "multistr": true,
    "globals": {
        "myApp": false
    }
}
Run Code Online (Sandbox Code Playgroud)