我在运行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']);
};
不确定我错过了什么。
答案 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: '/' });
}]);