Rails 3 + angularjs + minification does not work in production: Unknown provider: eProvider Rails 3 + angularjs + minification does not work in production: Unknown provider: eProvider ruby-on-rails ruby-on-rails

Rails 3 + angularjs + minification does not work in production: Unknown provider: eProvider


Found it! They never said to apply the injection fixes to services too... The solution is to change this:

angular.module('itemServices', ['ngResource']).    factory('Item', function($resource){      return $resource('items/:item_id.json', {}, {        query: {method:'GET', params:{ item_id: 'all' }, isArray:true}      });    });

to this:

angular.module('itemServices', ['ngResource']).    factory('Item', ['$resource', function($resource){      return $resource('items/:item_id.json', {}, {        query: {method:'GET', params:{ item_id: 'all' }, isArray:true}      });    }]);


Remember, to also use DI on controllers within directives. Took me hours... CS example:

wrong:

controller: ($scope) ->  $scope.closeModal = ->    ModalService.close()

right:

controller: ["$scope"  ($scope) ->    $scope.closeModal = ->      ModalService.close()]


Make sure to apply the DI pattern to ALL function definitions that require injection within your module. It can be easy to miss one. If you're using a routeProvider, factory, services, etc., they all need to have the DI pattern applied. I ended up deploying multiple times before I caught them all :P