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 실패)는 저와 제 동료 개발자가 로컬 호스트 시스템에서 발생했습니다.
개발 및 생산 기계가 잘 작동하고 있다는 점을 언급하는 것이 중요할 것입니다.
이 문제를 해결하기 위해 다음 단계를 수행했습니다.
- tsconfig.json 파일에서 inangularCompilerOptions가 설정되었습니다("enableIvy": false).
- Node.js를 최신 버전으로 업데이트(node-v 실행 중 v14.3.0 반환)
- node_message 폴더 폴더를 삭제했습니다. (삭제)
rm .\node_modules\
), Windows의 경우), 삭었는확인다니합지제. - 했습니다.
npm i
) - 여기서 프로젝트를 구축할 준비가 되었습니다.이제 오류 없이 빌드되고 실행됩니다.
저의 경우, @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: false
Visual 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
확장 → 각도 언어 서비스(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 errors
node_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
'programing' 카테고리의 다른 글
단일 문자로 문자열을 만들려면 어떻게 해야 합니까? (0) | 2023.07.30 |
---|---|
빈 문자열에 대한 병합? (0) | 2023.07.30 |
Android - SDK 버전 업데이트 후 ACTION-VIEW intent-filter를 사용하여 하나 이상의 활동 추가 23 (0) | 2023.07.30 |
각도 2: 성분 상호 작용, 선택적 입력 매개 변수 (0) | 2023.07.30 |
PowerShell 내에서 문자열이 시작되는 경우 (0) | 2023.07.30 |