簡體   English   中英

錯誤 NG6002:出現在 NgModule.imports 的<module> ,但無法解析為 NgModule 類

[英]error NG6002: Appears in the NgModule.imports of <module>, but could not be resolved to an NgModule class

我剛剛從 Angular 8.2 更新到 9。

如果我禁用常春藤,一切都會很好,但是當它啟用時,我會遇到很多似乎有點模糊的錯誤,至少我在谷歌搜索時找不到任何結果。

我很確定我已經完成了更新所需的一切,即將延遲加載更改為使用動態導入和固定 Angular Material 導入路徑等。

我還將在此處包含我的package.json依賴項

  "dependencies": {
    "@angular/animations": "^9.0.0",
    "@angular/cdk": "^9.0.0",
    "@angular/common": "^9.0.0",
    "@angular/compiler": "^9.0.0",
    "@angular/core": "^9.0.0",
    "@angular/fire": "^5.4.2",
    "@angular/flex-layout": "^9.0.0-beta.29",
    "@angular/forms": "^9.0.0",
    "@angular/http": "^7.2.15",
    "@angular/material": "^9.0.0",
    "@angular/material-moment-adapter": "^8.2.2",
    "@angular/platform-browser": "^9.0.0",
    "@angular/platform-browser-dynamic": "^9.0.0",
    "@angular/platform-server": "^9.0.0",
    "@angular/router": "^9.0.0",
    "@ngrx/effects": "^8.3.0",
    "@ngrx/entity": "^8.3.0",
    "@ngrx/router-store": "^8.3.0",
    "@ngrx/store": "^8.3.0",
    "@zxing/ngx-scanner": "^2.0.1",
    "angular-resizable-element": "^3.2.4",
    "angular-resize-event": "^1.1.1",
    "angular2-highcharts": "^0.5.5",
    "core-js": "^3.6.4",
    "detect-browser": "^4.7.0",
    "firebase": "^7.8.0",
    "google-polyline": "^1.0.3",
    "hammerjs": "^2.0.8",
    "highcharts": "^8.0.0",
    "i18n-iso-countries": "^4.3.1",
    "leaflet": "^1.5.1",
    "mapbox-gl": "^1.4.0",
    "moment": "^2.24.0",
    "moment-timezone": "^0.5.26",
    "ng-pick-datetime": "^6.0.7",
    "ngrx-store-freeze": "^0.2.3",
    "ngx-cacheable": "^1.3.2",
    "ngx-cookie-service": "^2.2.0",
    "ngx-csv": "^0.3.1",
    "ngx-file-drop": "^8.0.8",
    "ngx-infinite-scroll": "^0.8.4",
    "papaparse": "^5.0.2",
    "request": "^2.87.0",
    "request-promise": "^4.2.2",
    "rxjs": "^6.5.4",
    "rxjs-compat": "^6.3.3",
    "typescript-string-operations": "^1.3.1",
    "web-animations-js": "^2.3.2",
    "zone.js": "^0.10.2"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.900.1",
    "@angular/cli": "^9.0.0",
    "@angular/compiler-cli": "^9.0.0",
    "@angular/language-service": "^9.0.0",
    "@ngrx/store-devtools": "^8.3.0",
    "@types/body-parser": "^1.17.0",
    "@types/cors": "^2.8.4",
    "@types/detect-browser": "^4.0.0",
    "@types/express": "^4.11.1",
    "@types/firebase": "^3.2.1",
    "@types/helmet": "0.0.37",
    "@types/jasmine": "^3.5.4",
    "@types/jasminewd2": "~2.0.3",
    "@types/leaflet": "^1.2.7",
    "@types/lodash": "^4.14.109",
    "@types/node": "^13.7.1",
    "@types/request": "^2.47.0",
    "@types/request-promise": "^4.1.41",
    "codelyzer": "^5.2.1",
    "concurrently": "^3.5.1",
    "del-cli": "^1.1.0",
    "jasmine-core": "^3.5.0",
    "jasmine-spec-reporter": "^4.2.1",
    "karma": "^4.4.1",
    "karma-chrome-launcher": "^3.1.0",
    "karma-cli": "^2.0.0",
    "karma-coverage-istanbul-reporter": "~1.4.2",
    "karma-jasmine": "^3.1.1",
    "karma-jasmine-html-reporter": "^1.5.2",
    "protractor": "^5.4.3",
    "puppeteer": "^2.0.0",
    "rxjs-tslint": "^0.1.7",
    "ts-node": "~5.0.1",
    "tslint": "^6.0.0",
    "typescript": "3.6.4",
    "webpack": "^4.41.6"
  },
  "peerDependencies": {
    "typescript": "3.6.4",
    "tslib": "1.10.0"
  },

我得到的錯誤本身是:

在此處輸入圖像描述

我已經清除了我的node_modulespackage-lock.json並再次運行npm install

編輯:也許同樣重要的是要注意它正在使用ng serve編譯和運行,但是當我嘗試構建它或使用 AOT ng serve -aot運行時,我得到了錯誤。

我通過刪除 node_modules 文件夾來解決這個問題,然后運行npm install

我今天遇到了同樣的問題,這是我在我的場景中解決它的方法。

可能與您無關,但錯誤完全相同,因此在此處記錄。

我使用的是 Linux,如果您對項目文件夾沒有足夠的權限,則會出現此錯誤。

sudo chmod -R 777 <folder>

一旦我給予足夠的權限,一切都很順利並且運行良好。

這是我收到的錯誤的屏幕截圖:

在此處輸入圖片說明

我通過在項目的根目錄上執行這個命令來解決這個問題:

npx ngcc && ngcc -s dist

在我的 Angular 項目 (ng-version="10.1.6") 中安裝ngx-print ( https://www.npmjs.com/package/ngx-print ) 后出現以下錯誤 -

: 編譯成功。

node_modules/ngx-print/lib/ngx-print.module.d.ts:1:22 中的錯誤 - 錯誤 NG6002:出現在 AppModule 的 NgModule.imports 中,但無法解析為 NgModule 類。

這可能意味着聲明 NgxPrintModule 的庫 (ngx-print) 沒有被 ngcc 正確處理,或者與 Angular Ivy 不兼容。 檢查是否有更新版本的庫可用,如果有則更新。 還可以考慮與庫的作者核對以查看該庫是否與 Ivy 兼容。

1 導出聲明類 NgxPrintModule {

解決方案 -我通過刪除node_modules文件夾和package-lock.json解決這個問題,然后運行npm install

我一直在尋找這個問題的答案,因為我對尋找沒有幫助的答案感到沮喪,而我在互聯網上放棄了我試圖查看構建(庫)的 dist 文件夾以及發生了什么變化,首先要注意的是添加了 ive_ngcc_ 文件夾,這意味着即使我在我的庫項目中設置了 enable ivy : false ,它仍在將構建處理為 ivy 而不是常規。 有時它發生在 Angular 版本 9 中

修復步驟:

  1. 刪除節點模塊文件夾(庫項目)在 Windows 上使用的命令( rm .\\node_modules)
  2. 刪除現有的 dist 文件夾使用的命令 (rm .\\dist)
  3. 刪除 package-lock.json 文件
  4. 運行 npm cache clean --force
  5. 以防萬一我不確定這是否可行,我運行 npm restart (我認為這一步成功了)
  6. 運行 npm 安裝
  7. 運行 npm build (在 tsconfig > angularCompilerOptions > enableIVY: false)
  8. 最重要的是重新檢查 dist 文件夾以查看 ivy_ngcc 文件夾是否不存在
  9. 使用 npm 鏈接或發布 beta 並在父應用程序中使用它(現在它應該可以工作)!

關鍵帶走該錯誤具有誤導性,因為可能存在許多可能引發相同錯誤的問題,我的用例是使用為我們的項目創建的自定義庫。 希望這可以幫助一些開發人員並節省他們的時間! 快樂編碼!

環境詳細信息:Win OS 10 npm:6.14.3 節點:14.17.2 angular:: 9.1.3

錯誤:projects/paidia/src/app/shared/modules/shared.module.ts:141:14 - 錯誤NG6002:出現在TournamentModule的NgModule.imports中,但本身有錯誤

141 導出類 SharedModule { ~~~~~~~~~~~~

錯誤:projects/paidia/src/app/shared/modules/shared.module.ts:141:14 - 錯誤NG6002:出現在VideosModule的NgModule.imports中,但本身有

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM