grunt-angular-builder"忽略文件"

时间:2015-05-15 23:09:23

标签: angularjs gruntjs

我在运行grunt-angular时遇到了一些奇怪的事情。出于某些原因,在运行命令`grunt release -v'时,它会看到文件忽略它们。结果是:

Running "angular-builder:app" (angular-builder) task
Verifying property angular-builder.app exists in config...OK
Files: app/components/home/homeController.js, app/core/app.js -> build/admin_tools.js
Options: mainModule="AdminTools"
Reading app/components/home/homeController.js...OK
Ignored file: app/components/home/homeController.js

Generating the release build...

Not optimizing anchorScrollOffsetExample because it shares some/all of its files with other modules.
Including module ngRoute.
Scanning ngRoute for non-angular script dependencies...
Validating app/core/angular-route.js...OK
Including module AdminTools.
Scanning AdminTools for non-angular script dependencies...
Validating app/core/app.js...OK
Writing build/admin_tools.js...OK

Done, without errors.

正如你所看到的那样,它看到了一个名为homController.js的js文件,但是忽略了它,我无法弄清楚原因。该文件的内容是。

app.controller('homeController', ['$scope', '$log', function ($scope, $log){

    doThis = function(){
        alert('Hello There');
    }

}]);

非常简单的东西。 app.js看起来像这样:

var app = angular.module('AdminTools', ['ngRoute']);   

app.config(['$routeProvider', function($routeProvider) {

    $routeProvider 
        .when('/', {
            templateUrl: 'app/templates/login.html',
            controller: 'homeController'
        })
        .otherwise({ redirectTo: '/' });
}]);

- 编辑添加Grunt文件 -

module.exports = function (grunt){

    grunt.initConfig ({

        'angular-builder': {
            options: {
                mainModule: 'AdminAdmin'
            },
            app: {
                src:  'app/**/*.js',
                dest: 'build/admin_tools.js'
            }
        }
    });

    grunt.loadNpmTasks ('grunt-angular-builder');

    grunt.registerTask ('default', ['angular-builder']);
    grunt.registerTask ('release', ['angular-builder']);
    grunt.registerTask ('debug', ['angular-builder::debug']);

};

不确定我错过了什么。

1 个答案:

答案 0 :(得分:1)

我能够找出问题所在。这与模块化应用程序的方式有关。

控制器必须是:

angular.module('home.controller', [])
    .controller('homeController', ['$scope', '$log', function ($scope, $log){

        doThis = function(){
            alert('Hello There');
        }

}]);

app.js就像这样注册依赖。

angular.module('AdminTools', [
    'ngRoute',
    'home.controller']);  

angular.config(['$routeProvider', function($routeProvider) {

    $routeProvider 
        .when('/', {
            templateUrl: 'app/templates/login.html',
            controller: 'homeController'
        })
        .otherwise({ redirectTo: '/' });
}]);