programing

Angular 9 - 처리되지 않은 예외로 NGC가 실패함

muds 2023. 7. 30. 18:09
반응형

Angular 9 - 처리되지 않은 예외로 NGC가 실패함

Angular 9로 종속성을 업그레이드한 후(그리고 필요한 코드 변경을 수행한 후) 애플리케이션을 빌드하면 다음 오류가 발생합니다.

컴파일 @angular/animations : es2015 asem2015 컴파일 @angular/animations : es2015 esm2015 컴파일 @angular/core : esm2015 컴파일 @angular/core : esm2015 컴파일 @angular/core : esm2015 esm2015 오류: 작업자 #5: 유형 오류: null의 '파일 이름' 속성을 읽을 수 없습니다.

그런 다음 계속해서 다음 오류를 발생시킵니다.

컴파일 @angular/core : es2015 asem2015 컴파일 @angular/compiler/testing : es2015 컴파일 @angular/core : es2015 asem2015 오류:node_modules/@angular/core/core.d.ts를 쓰려고 했습니다.ngcc 백업 파일이 있는 __bak_ngcc_bak이 이미 존재하므로 node_back_node/back/@back/core/core.d.ts를 기록하거나 백업하지 않습니다.

이 오류는 두 개 이상의 진입점이 겹치고 ngcc에서 일부 파일을 두 번 이상 처리하도록 요청받았기 때문일 수 있습니다.이 패키지의 다른 진입점을 확인하고 사용하지 않는 항목을 무시하도록 구성해야 합니다.

@angular/core : esm2015 asem2015 컴파일 중 처리되지 않은 예외가 발생했습니다. NGCC가 실패했습니다.

이 문제(NGCC 실패)는 저와 제 동료 개발자가 로컬 호스트 시스템에서 발생했습니다.

개발 및 생산 기계가 잘 작동하고 있다는 점을 언급하는 것이 중요할 것입니다.

이 문제를 해결하기 위해 다음 단계를 수행했습니다.

  1. tsconfig.json 파일에서 inangularCompilerOptions가 설정되었습니다("enableIvy": false).
  2. Node.js를 최신 버전으로 업데이트(node-v 실행 중 v14.3.0 반환)
  3. node_message 폴더 폴더를 삭제했습니다. (삭제)rm .\node_modules\), Windows의 경우), 삭었는확인다니합지제.
  4. 했습니다.npm i)
  5. 여기서 프로젝트를 구축할 준비가 되었습니다.이제 오류 없이 빌드되고 실행됩니다.

저의 경우, @angular-devkit/build-angular패키지의 "^0.1001.2"로 업데이트되었습니다.npm 감사 수정 실행 후 json 파일. (이 버전은 로컬 프로젝트의 Angular 버전(v9.1.7) 대신 Angular 10에 속하는 것 같습니다.)

이 변경 사항을 되돌린 후 모든 것이 다시 작동하기 시작했습니다.

"@build-devkit/build-devkit": "~0.901.6"

terminal/cmd를 사용하여

첫 번째 단계:

ng update @angular/cli @angular/core

두 번째 단계:

ng update

세 번째 단계:

ng serve

내 것을 고쳤어요.

메모

부트스트랩 폴더의 사용자 지정 CSS 파일이 삭제될 수 있습니다.이전에 백업하고 업데이트 후에 다시 배치합니다!


글로벌 솔루션

위의 솔루션을 사용하면 각 프로젝트에서 "첫 번째 단계"를 수행해야 합니다.모든 피쳐 프로젝트에 대해 Angular CLI/Core 버전을 전체적으로 업그레이드하려는 경우 다음 명령을 사용하여 Angular 버전을 업그레이드합니다.

npm i -g @angular/cli

그런 다음 위의 두 번째 및 세 번째 단계를 실행합니다.

이 수 있으며 이 는 Angularngcc라는 에 잠겨 입니다.__ngcc_lock_file__東京의 \node_modules\@angular\compiler-cli\ngcc.

하드 시스템을 끄거나 OS가 손상된 경우 이 잠금 파일은 node_modules 폴더에 있습니다.그리고 컴퓨터를 켜고 응용 프로그램을 다시 시작하려고 하면 Angular CLI가 이 잠금 파일을 확인하고 파일에 지정된 프로세스 ID를 찾습니다.컴퓨터를 완전히 다시 시작한 후 프로세스 ID가 누락된 경우가 대부분이며 이 오류가 발생합니다.

해결책 1.node_modules 폴더를 제거하고 donpm 설치

해결책 2.스마트 솔루션 - 아래와 같이 잠금 파일을 삭제합니다.

에 가다\node_modules\@angular\compiler-cli\ngcc파일이라는 이름의 .__ngcc_lock_file__삭제합니다.다 했어요.

node_modules 폴더를 제거하고 설치를 다시 실행해 보십시오.

rm -rf node_modules
npm install

저에게는 그것이 문제를 해결했습니다.

추가하기"postinstall": "ngcc""scripts"꾸러미로json이 이것을 고치는 것을 도왔습니다.

경우에는 의나경우, 가추가를 해서.enableIvy: falseVisual Studio Code용 Angular Language Service Extension과 관련된 문제를 해결하지 못했습니다. 실제로 매개 변수를 고려하지 않는 것 같습니다.

솔루션은 확장 버전을 다운그레이드하는 것이었습니다.(v12.0.0 --> v11.2.14).자세한 방법은 여기를 참조하십시오.).

tsconfig.json 파일에서 "enableIvy": false를 설정하면 특정 오류가 해결됩니다.아이비는 이미 사용할 수 있어야 합니다.

버전 9 #36060으로 업데이트된 후 오류에 대한 clement911의 답변에서 이것을 발견했고, 많은 테스트 끝에 저에게 효과가 있었습니다.

나는 내 tsconfig.spec.json 파일에 들어가서 추가해야 했습니다.

"angularCompilerOptions": {
    "enableIvy": false
}

이미 내 tsconfig.json 파일에 있습니다.

js를 사용하여 Node.합니다.node -v그리고 Angular 9가 호환되는지 확인합니다.

Node.js를 최신 LTS 버전(12.8.1)으로 업데이트하는 것이 효과가 있었습니다.nvm(Node Version Manager)을 사용하여 이 작업을 수행했습니다.저는 여기서 좋은 지침을 찾았습니다.

  • 파일 패키지에서 tslib.js를 제거했습니다.제이손
  • package-lock.json 파일이 제거되었습니다.
  • node_modules 폴더 폴더를 삭제했습니다.
  • npm i
  • ng serve

그것은 나에게 효과가 있었다.

제 경우에는 Node.js의 최신 버전으로 이전 버전의 Angular 프로젝트를 실행하려고 했습니다.제가 한 일은:

기존의 모든 결절 모듈을 제거했습니다.

rm -rf node_modules

Node.js가 최신 버전으로 업데이트됨:

npm update
npm install

Angular 프로젝트 버전을 최신 버전으로 업데이트했습니다.

ng update @angular/core

프로젝트 CLI를 최신 버전으로 업데이트했습니다.

ng update @angular/cli

이제 프로젝트를 시작합니다.

ng-serve

각진 글꼴을 제거하고 설치를 다시 실행합니다.

npm uninstall angular-font-awesome
ng add @fortawesome/angular-fontawesome@0.6.0

폰타썸을 제거한 후에 문제가 해결되었으며 이제 아이콘은 재료 아이콘이 제가 선택한 아이콘입니다.

하지만 수년간 무료로 멋진 아이콘을 제공해주신 폰트 어썸에 감사드립니다 :)

Angular 9 응용 프로그램의 일부 한계 라이브러리를 업데이트하려고 했기 때문에 이것과 다른 버그가 발생했습니다.컴파일 중에 나타나는 오류는 오류를 수정하는 데 도움이 되지 않는다는 점에서 의미가 없습니다.

원래 패키지가 있는데도 "node_modules"와 "npmi"를 삭제하면 해결책이 작동하지 않습니다.json 파일, "npmi"는 여전히 원본 라이브러리가 아닌 다른 버전의 라이브러리를 설치합니다.node_modules 폴더의 라이브러리가 원래 정확히 무엇이었는지는 알 수 없습니다.

백업에서 node_modules 폴더를 복원하는 데 도움이 되는 유일한 솔루션입니다.

그렇지 않으면 응용 프로그램에서 라이브러리를 업데이트해야 할 경우 휴가를 내고 항우울제를 준비하지만 라이브러리를 업그레이드한 후 의미 없는 오류를 해결하는 데 며칠이 걸리지 않을 수 있습니다.

이전 Angular 버전의 경우 Visual Studio 확장을 통해 이 문제를 해결했습니다.

CLI: 각도 CLI: 6.1.5
표준: 8.11.4

Visual Studio, 각도 확장

앵귤러 뷰 엔진

확장각도 언어 서비스(v12.0.2)확장 설정

  • Workspace에서 "User Legacy View Engine language service"를 선택합니다.

아이비를 비활성화하는 것이 최선의 해결책이 될 수 있는 상황은 없습니다.

Windows 사용자의 경우:

npm i rimraf -g
rimraf node_modules
npm i

이 경우 버전이 일치하지 않습니다.첫 번째 버전 노드 JS 및 각도 JS 점검

그런 다음 : npm install => : ng serve 라고 씁니다.

포트 문제가 있는 경우: ng server --port 4201

저는 이 문제를 겪었지만 위의 답변 중 어떤 것도 도움이 되지 않았습니다.

내 솔루션:

  • 루트 프로젝트 폴더로 이동
  • 명령: run cmd 령명:./node_modules/.bin/ngc tsconfig.json
  • 오류를 시켰습니다: 중 입니다.*.spec.ts파일(테스트 파일)에 오류가 발생했습니다(이전에 종속성을 제거했습니다).VS Code 디버깅을 빌드하거나 시도할 때 기본적으로 표면화되지 않았습니다.
  • 후 디버거와 "VS Code" 둘 다./node_modules/.bin/ngc tsconfig.json이 성공했습니다.

저는 package-lock.json을 사용한 지 꽤 되었는데 병합 충돌로 인해 패키지 버전을 삭제하고 다시 생성하려고 했을 때 오류가 발생했습니다.이전 package-lock.json으로 돌아갈 때 문제가 사라졌습니다.그래서 저는 검색을 시작했습니다.

  • 둘 사이의 변화를 비교하기
  • 운영 환경에서도 문제가 발생하는지 확인 - 그렇다면 거의 종속성일 수 없습니다.
  • 있을 것 같지 않은 의존 관계를 분류하기

버전 11.2.0에서 11.2.12로 업데이트된 @angular/material-moment-adapter에서 보다 정확하게는 @angular/material-moment-adapter에서 업데이트를 받았습니다.

저도 비슷한 문제가 있었습니다.

저의 경우 Node.js를 새로운 버전으로 업데이트하는 것이 도움이 되었습니다.

저는 가 성공할 마다 ( 조언합니다.에 직면할 는 (된) 문제가 발생하기 때문입니다. 왜냐하면 이런 종류의 문제에 직면할 때 (관련된 모든 것)NGCC errorsnode_dll 폴더를 하드 삭제하고 마지막 백업에서 복원하면 됩니다.그리고 다시 만듭니다.

Node.js를 최신 버전으로 업데이트할 여유가 없는 경우 이 솔루션이 완벽할 수 있습니다.

나의 경우, 나는 npm의 각진-폰트-어썸 패키지를 설치한 다음 부트스트랩을 설치했습니다.충돌할 수도 있지만, 이전에 설치된 각진-글꼴을 제거한 다음 작업을 수행했습니다.ng build.

실행할 때 이 문제가 있었습니다.ionic build프로젝트가 제 동료들과 잘 진행되는 동안.그래서 우리는 달렸습니다.ng -v우리의 패키지를 비교하기 위해.더 높은 버전을 가지고 있었던 것으로 밝혀졌습니다.@angular-devkit/build-angular,@angular-devkit/build-optimizer그리고.@angular-devkit/build-webpack 각각의 버전은 0.1001.2였고, 우리의 프로젝트는 0.901.8로 실행되었습니다.

그래서 뛰었습니다.npm uninstall @angular-devkit/build-angular 0.1001.2제거하려면 다음과 같이 하십시오.npm install @angular-devkit/build-angular 0.901.8격하시키다실행 중ng -v다시, 다른 두 명도 다운그레이드 되었습니다.

마침내.ionic build성공적이었습니다!그 후로 우리는 서로 다른 문제에 부딪힐 때까지 행복하게 살았습니다.프로젝트를 위한 작업 패키지

"prettier": "2.2.1". 의미론을 방해하므로 이것을 제거합니다.

저의 경우, 문제는 서버에 RAM(1GB)이 부족하여 빌드를 처리하기에 충분하지 않은 것 같습니다.2GB로 늘린 후 문제가 해결되었습니다.

Visual Studio Code 1.62 이상을 사용하는 사용자용입니다.그 대답들 중 어느 것도 저에게 도움이 되지 않았습니다.

어제(2021-10-11) Visual Studio Code를 업데이트했는데 어떤 이유에서인지 Angular 9 프로젝트에 "NGCC failed"가 표시되기 시작했습니다.Visual Studio Code를 1.61.2로 다운그레이드하고 모든 것이 정상으로 돌아왔습니다.

불행하게도, 이전의 답변들은 모두 효과가 없었습니다.

유형 스크립트를 4.8에서 4.6으로 다운그레이드하여 문제를 해결했습니다.

모델 node_modules npm install enableIvy:false는 각도 v12 이상을 사용하는 지원되지 않습니다.

tsconfig.json 파일을 다음 JSON 콘텐츠로 바꿉니다.

{
  "compileOnSave": false,

  "compilerOptions": {
     "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "module": "esnext",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "target": "es2015",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ]
  },
  "angularCompilerOptions": {
    "fullTemplateTypeCheck": true,
    "strictInjectionParameters": true
  }
}

언급URL : https://stackoverflow.com/questions/61222467/angular-9-ngcc-fails-with-an-unhandled-exception

반응형