I used Gulp to minify my entire js files. Once minified I got an error like the following:
[$injector:unpr] Unknown provider: eProvider <- e <- makeErrorsDirective.
I had a Custom directive in my controller file.
var myhubdashboardControllers = angular.module('vpdashboardmodule', []);
.directive('mhDashboard', function ($http, authService, apiService) {
return {
restrict: 'EA',
scope: {
name: '@',
dash: '@',
report: '@',
disname: '@',
disdesc: '@',
distot: '@'
},
templateUrl: 'views/dashboard/dashboard-direc.html',
link: function (scope, element, attr) {
scope.linkChk = scope.name;
switch (scope.linkChk) {
case 'Shipped This Week':
scope.url = 'erp/JobShipmentList/PostCpsVwShipmentCount';
scope.shipstatus = "Departure";
scope.period = "ThisWeek";
scope.basicfilter = "Open";
scope.linkName = "Shipments";
scope.linkDesc = "Shipped This Week";
break;
}) };
This is the code used in my application.
Angular doesn't always work well with minification.
If you as an example write this:
Then the
$scope
would be changed to something meaningless during minification.If one instead changes that to:
Then it doesn't matter what the first argument in the function is called (here
s
), as long as the string is"$scope"
.See this: https://docs.angularjs.org/tutorial/step_05#a-note-on-minification in the documentation for more details.
If you want more help, you have to post the code in question, not just the error.
There is a reason why you have to inject services and controller in string array.
if you want to inject scope to controller, you have to use
Minification will change the variable names and if you don't use that array of strings while injecting services or controllers, it will be like
So, angular will not be able to understand what 'e' stands for, hence the error. Always remember that the order is also important.
I had this same issue, even when I use gulp-ng-annotate, but it only happens occurs for $stateProvider and ngDialog resolves:
Resolve needs to be written like this:
So it feels that ng-annotate does not inject the array into resolves, but only to controller/service/factory constructors.
I had an issue using
angular-ui-router-title
. After changingto
the error doesn't appear anymore.