source

Yeoman 앱에서 Grunt Build를 사용한 최소화 후 각도 "Unknown Provider" 오류 발생

bestscript 2023. 2. 8. 19:43

Yeoman 앱에서 Grunt Build를 사용한 최소화 후 각도 "Unknown Provider" 오류 발생

에 문제가 있습니다.grunt buildYooman에서 생성된 Angular 앱은 커피와 슬림이며 모든 라이브러리가 최신입니다.(이 앱은 최신 제너레이터로 며칠 전에 생성되었습니다.)

grunt build그리고.grunt server처음에는 둘 다 잘 작동했어요.하지만 며칠간의 개발 끝에grunt server, 나는 그것을 발견했다.grunt build완전히 작동을 멈춘 상태였어요.

내가 고친 몇 가지 다른 문제들이 있었다.가장 큰 것은 인덱스 파일 때문에 Slim을 완전히 포기하고 스트레이트 HTML을 사용해야 했다는 것입니다.grunt build에 공개되었을 때 인덱스 파일의 80%를 설명 없이 삭제하고 있었습니다./dist.

안타깝게도 거의 모든 것을 해결한 후 Angular 명령 중 하나에 다음과 같은 오류가 표시되기 시작했습니다.

검출되지 않은 오류: 알 수 없는 공급자: aProvider <- a

문제는 미증유의 문제인 것 같다.여기서 보고한 것과 같은 문제일 수도 있다고 생각합니다만, 확실히는 모르겠습니다.여러 가지 솔루션을 시도했지만, 유일하게 효과가 있었던 것은 cofeescript에서 clean js 파일을 수동으로 생성하고 파일을 복사한 것입니다./dist에 경로를 씁니다.dist/index.html.

확실히 그건 최적이 아니야.Grunt에서는 (아마도 위의 링크에 있는 다른 사용자와 마찬가지로 빌드 프로세스에서 완전히 최소화를 제거함으로써) 더 깔끔한 방법이 있을 것입니다만, 저는 아직 처음이라 그 방법을 모릅니다.어느 쪽이든 회피책이 될 수 있습니다.

내 Grunt 파일은 매우 기본적입니다.기본 파일에는 grunt-connect-proxy, grunt-contrib-sass 및 grunt-slim만 추가되어 있습니다.사실 새로 생성된 Grunt 파일을 가져오려고 했지만 더 나은 파일이 구축되지 않았습니다.

실패한 지시는 다음과 같습니다.이 에러는 컨트롤러의 첫 번째 줄에 표시됩니다.$scope.showInput = false답답한 것은 모든 것이 잘 작동한다는 것이다.grunt server하지만 내가 짓는 순간, 그것은 완전히 무너진다.

myModule.directive "editable", ->

  controller = ($scope) ->
    $scope.showInput = false

    $scope.saveContent = -> 
      $scope.toggleContent()
      $scope.save()

  linker = (scope, element, attrs) ->    
    scope.toggleContent = -> 
      scope.showInput = not scope.showInput
      setTimeout((-> element.find('input').focus()), 100)

  return DDO = 
    restrict: 'E'
    controller: controller
    link: linker
    templateUrl: "template/editable.html"
    scope:
      editableType: "@"
      text: "="
      placeholder: "@"
      save: "&"

(템플릿은 그다지 중요하지 않습니다.그냥...ng-switch를 사용하여 전환합니다.$scope.showInput.)

제안해주시면 감사하겠습니다.

Angular가 의존성 주입을 위한 인수 이름에 의존하는 일반적인 문제처럼 들립니다.종속성을 전달할 때 종속성 이름을 문자열로 포함하면 Angular가 최소화 프로세스에서 문자열 값이 변경되지 않으므로 최소화 후 주입할 항목을 알 수 있습니다.

myApp.controller('myCtrl', ['$scope', '$http', function($scope, $http) {

}])

Angular docs에서: 최소화에 관한 주의사항

언급URL : https://stackoverflow.com/questions/20340644/angular-unknown-provider-error-after-minification-with-grunt-build-in-yeoman-a