programing

레일 3 + angularjs + minization은 생산 시 작동하지 않습니다.알 수 없는 공급자: eProvider

muds 2023. 10. 8. 10:24
반응형

레일 3 + angularjs + minization은 생산 시 작동하지 않습니다.알 수 없는 공급자: eProvider

예를 들어, 최소화를 수정하기 위해 찾을 수 있는 모든 지침을 준수했습니다.

var MyController = function(renamed$scope, renamedGreeter) {
...
}
MyController.$inject = ['$scope', 'greeter'];

그리고.

someModule.factory('greeter', ['$window', function(renamed$window) {
...;
}]);

하지만 각진 사람들은 가만히 일하는 것을 거부합니다.항상 "알 수 없는 공급자: eProvider" 오류가 표시됩니다.

여기 제가 두 번 시도한 게 있어요누가 도와줄수 있습니까?

https://github.com/jemminger/angular-test1

https://github.com/jemminger/angular-test2

이미 자산이 사전 컴파일되어 있고 개발 모드가 프로덕션으로 작동하도록 구성되어 있으므로 "레일"을 사용하여 작동 여부를 확인할 수 있어야 합니다.

찾았어요!그들은 주사 수정을 서비스에도 적용하라는 말을 한 적이 없습니다.해결책은 이를 변경하는 것입니다.

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

다음 항목에 대해:

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

지시 내의 컨트롤러에서도 DI를 사용해야 한다는 것을 기억하세요.몇 시간이나 걸렸는데...CS 예:

틀렸습니다:

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

오른쪽:

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

모듈 내에서 주입이 필요한 모든 기능 정의에 DI 패턴을 적용해야 합니다.하나를 놓치기 쉽습니다.routeProvider, factory, services 등을 사용하는 경우 모두 DI 패턴을 적용해야 합니다.전부 잡기 전에 여러 번 배포를 하게 되었습니다. :P

언급URL : https://stackoverflow.com/questions/13459452/rails-3-angularjs-minification-does-not-work-in-production-unknown-provider

반응형