未捕获错误:[$ injector:modulerr]由于以下原因无法实例化模块yeomanTestApp:错误:[$ injector:unpr]未知提供者:e

时间:2017-04-22 14:39:02

标签: angularjs gruntjs yeoman-generator

我正在使用yeoman生成器来搭建带有requirejs的角度web应用程序。它的工作正常,但当我试图通过grunt任务运行程序将所有js文件连接并缩小为单个文件时,它开始给我上面提到的错误。我在网上研究过这个问题,常见的解决办法是我可能会错误拼写任何注入模块或服务的服务都不存在,我已经交叉检查所有的拼写,引号等一切似乎都很好但我仍然我无法解决这个问题。

这是我的app.js文件,其中列出了我的带有依赖项的主模块。

 return angular
.module('arteciateYeomanApp', [
'arteciateYeomanApp.controllers.MainCtrl',
'arteciateYeomanApp.controllers.AboutCtrl',
'arteciateYeomanApp.services.Xhr',
'arteciateYeomanApp.services.Common',
'arteciateYeomanApp.controllers.ArtworkCtrl',
'arteciateYeomanApp.controllers.AddAccountCtrl',
'arteciateYeomanApp.controllers.AddArtgroupCtrl',
'arteciateYeomanApp.controllers.AddArtistCtrl',
'arteciateYeomanApp.controllers.AddArtworkCtrl',
'arteciateYeomanApp.controllers.AddCampaignsCtrl',
'arteciateYeomanApp.controllers.AddGenreCtrl',
'arteciateYeomanApp.controllers.AddInstitutionCtrl',
'arteciateYeomanApp.controllers.AdminSignupCtrl',
'arteciateYeomanApp.controllers.ArtistInfoCtrl',
'arteciateYeomanApp.controllers.DirectUserSignupCtrl',
'arteciateYeomanApp.controllers.ErrorCtrl',
'arteciateYeomanApp.controllers.ForgotPasswordCtrl',
'arteciateYeomanApp.controllers.GroupBuyingCtrl',
'arteciateYeomanApp.controllers.LoginCtrl',
'arteciateYeomanApp.controllers.AdminLoginCtrl',
'arteciateYeomanApp.controllers.ResetPasswordCtrl',
'arteciateYeomanApp.controllers.SignupCtrl',
'arteciateYeomanApp.controllers.UnblockUserCtrl',
'arteciateYeomanApp.controllers.UpdatePasswordCtrl',
'arteciateYeomanApp.controllers.DashboardCtrl',
'ngRoute','ngResource']).config(.....);

这是我正在运行的用于缩小js文件的繁琐任务。

注册任务

grunt.registerTask('dev', ['requirejs' ]);

这是任务运行脚本

requirejs : {
    compile : {
        options : {
            baseUrl : "<%= yeoman.app %>/scripts",
            mainConfigFile : "<%= yeoman.app %>/scripts/main.js",
            name : "main",
            out : "requireArterciate.js"
        }
    }
}

如果我在这里做错了,请告诉我。

1 个答案:

答案 0 :(得分:0)

如果需要缩小angularjs代码,请使用以下标准格式语法来定义控制器并注入依赖项。请参阅Dependency Injection

angular.module('test').controller('testController', testController);
testController.$inject = ['$scope', '$rootScope'];
function testController($scope, $rootScope) {};