programing

Chrome 확장 hint.js & ngHint Modules

newsource 2023. 4. 5. 21:58

Chrome 확장 hint.js & ngHint Modules

앵귤러 앱이 크롬 카나리아(버전 41.0.227.0 카나리아(64비트))에 로드되지 않을 수 있습니다.

다음 원인으로 인해 ngHintModules 모듈을 인스턴스화하지 못했습니다.RangeError: 최대 콜스택 크기를 초과했습니다.

그러나 파이어폭스, 크롬(버전 39.0.2171.71(64비트)), 사파리에서는 정상적으로 로딩됩니다.

아마 각진 것과 관련이 있는지 없을 것이다.

완전 오류

Uncaught Error: [$injector:modulerr] Failed to instantiate module ngHintModules due to:
RangeError: Maximum call stack size exceeded
    at Array.forEach (native)
    at module.exports (chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2333:21)
    at module.exports (chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2384:5)
    at chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2387:7
    at Array.forEach (native)
    at module.exports (chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2385:21)
    at chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2387:7
    at Array.forEach (native)
    at module.exports (chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2385:21)
    at chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2387:7

NB: 여기서 보여지는 오류는

버전 41.0.2237.0 canari(64비트)

저도 Batarang을 비활성화 시켜서 해결한 문제가 있었습니다.

이 호는 Batarang Github에서 공개됩니다.https://github.com/angular/angularjs-batarang/issues/156

다음 zip 파일에서 이전 버전의 Batarang을 로드할 수 있습니다.https://github.com/angular/angularjs-batarang/archive/v0.4.3.zip

  1. 기타 툴 열기 -> Chrome 확장 기능
  2. 각도 찾기확장자를 제거하려면 JS Batarang을 클릭하고 휴지통을 클릭합니다.
  3. .zip 다운로드
  4. 파일 추출
  5. 기타 툴 열기 -> Chrome 확장 기능
  6. 상단의 Developer Mode를 확인합니다.
  7. '패키지 해제된 확장 로드'를 클릭합니다.
  8. zip을 추출한 디렉토리를 선택합니다.
  9. 매니페스트 파일에 관한 에러가 표시되는 경우는, 1 개의 디렉토리 레벨을 너무 높게 선택했을 가능성이 있습니다.하부 레벨의 angularjs-batarang-0.4.3 디렉토리를 선택했는지 확인합니다.
  10. 각도 로드JS 페이지를 열고 이전과 마찬가지로 인스펙터와 함께 Batarang을 다시 사용합니다.

이렇게 하면 이전 버전이 복원됩니다.이 버전에는 퍼포먼스 프로파일링, 스코프 인스펙터, 옵션 및 최신 버전에서 삭제된 도움말 탭 등의 기능이 대부분 포함되어 있습니다.0.7.1 버전은 앱의 주요 중단을 수정하지만 스코프 트리(인스펙터 없음)와 새로운 각도 힌트 기능만 제공합니다.

Angular batarang을 비활성화할 필요는 없습니다.다음 절차를 수행합니다.

  1. 개발자 도구를 열고 hint.js 파일(스택 오버플로를 트리거하는 파일)로 이동합니다.
  2. 453행으로 이동하여 중단점 추가
  3. 앱을 새로고침하여 중단점에 도달하면 코멘트 아웃(setup Module Loader(window))을 하고 계속을 클릭하기만 하면 됩니다.
  4. 그래도 예외가 발생하지만(Uncatched ReferenceError: angular가 정의되지 않음) batarang을 실행할 수 있습니다.

그것이 최선의 해결책은 아니라는 것을 알지만, 그것이 내가 문제를 너무 깊이 파고들지 않고 찾을 수 있는 가장 빠른 방법이다.

업데이트:

어떤 일이 일어나고 있는지 자세히 확인해보니 여러 모듈을 정의하고 모든 모듈에 동일한 종속성을 추가할 때 문제가 발생한다는 것을 알 수 있었습니다.

예를 들어 다음과 같습니다.

angular.module("app", ["moduleB", "moduleC"]);
angular.module("moduleB", ["moduleC"]);

부모 모듈과 같은 dep를 전달하지 않고 모듈B를 정의하면 스택오버플로는 발생하지 않습니다.

angular.module("moduleB", []);

우리 팀은 방금 이 오류를 경험했고 크롬의 Batarang Extension을 최신 버전으로 업데이트하여 수정했습니다.

업데이트...Chrome의 새로운 업데이트로 문제가 다시 발생했으므로 이 오류가 발생한 사람이 있으면 이전 Chrome 빌드로 되돌립니다.모든 빌드를 사용할 수 있습니다. 첫 번째 빌드를 선택하지 마십시오.http://www.slimjet.com/chrome/google-chrome-old-version.php 그럼 잘 될 거예요!

GitHub 페이지 사이트(지킬)에서도 같은 문제가 있었습니다.
Angular가 Angular인지 몇 동안 했습니다.되지 않았습니다(JS 앱이 표시되지 않았습니다).ng-cloak해결되지 않았습니다).
문제의 원인이 바타랑이라는 것을 알아냈다.

@kpg답변 감사합니다.

언급URL : https://stackoverflow.com/questions/27393367/chrome-extension-hint-js-nghintmodules