首页 > 解决方案 > 从 Angular 8 升级到 v12 导致“生成浏览器应用程序包(阶段:设置)...TypeError:无法读取未定义的属性'文本'”

问题描述

我一直在努力将 Angular 应用程序从 v8 升级到 v12。我已经通过每个版本完成了所有升级步骤。一切都很顺利。但是,我正在尝试运行项目“ng serve”,并且收到一条我无法弄清楚的神秘错误编译错误消息。

这是 ng serve 吐出的错误。ng build 也出现同样的错误。


⠋ 生成浏览器应用程序包(阶段:设置)...TypeError:无法读取未定义的属性“文本”
    在 NodeObject.getText (/Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/typescript/lib/typescript.js:152697:31)
    在 getRequiredModulePath (/Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/@angular/compiler-cli/ngcc/src/host/umd_host.js:519:99)
    在 Object.getImportsOfUmdModule (/Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/@angular/compiler-cli/ngcc/src/host/umd_host.js:510:23)
    在 UmdDependencyHost.extractImports (/Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/@angular/compiler-cli/ngcc/src/dependencies/umd_dependency_host.js:43:54)
    在 UmdDependencyHost.DependencyHostBase.recursivelyCollectDependencies (/Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/@angular/compiler-cli/ngcc/src/dependencies/dependency_host.js:85:32)
    在 UmdDependencyHost.DependencyHostBase.collectDependencies (/Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/@angular/compiler-cli/ngcc/src/dependencies/dependency_host.js:38:22)
    在 DependencyResolver.getEntryPointWithDependencies (/Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/@angular/compiler-cli/ngcc/src/dependencies/dependency_resolver.js:75:22)
    在 EntryPointCollector.walkDirectoryForPackages (/Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/@angular/compiler-cli/ngcc/src/entry_point_finder/entry_point_collector.js:47:52)
    在 EntryPointCollector.walkDirectoryForPackages (/Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/@angular/compiler-cli/ngcc/src/entry_point_finder/entry_point_collector.js:75:103)
    在 /Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/@angular/compiler-cli/ngcc/src/entry_point_finder/program_based_entry_point_finder.js:124:100
/Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/@ngtools/webpack/src/ngcc_processor.js:139
            throw new Error(errorMessage + `NGCC failed${errorMessage ?', 见上': ''}.`);
            ^

错误:NGCC 失败。
    在 NgccProcessor.process (/Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/@ngtools/webpack/src/ngcc_processor.js:139:19)
    在 /Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/@ngtools/webpack/src/ivy/plugin.js:129:27
    在 Hook.eval [as call] (创建时的评估(/Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/tapable/lib/HookCodeFactory.js:19:10),:32:1)
    在 Hook.CALL_DELEGATE [as _call] (/Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/tapable/lib/Hook.js:14:14)
    在 Compiler.newCompilation (/Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/webpack/lib/Compiler.js:1043:30)
    在 /Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/webpack/lib/Compiler.js:1088:29
    在 Hook.eval [as callAsync](创建时的评估(/Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/tapable/lib/HookCodeFactory.js:33:10),:22:1)
    在 Hook.CALL_ASYNC_DELEGATE [as _callAsync] (/Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/tapable/lib/Hook.js:18:14)
    在 Compiler.compile (/Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/webpack/lib/Compiler.js:1083:28)
    在 /Users/ericdeveloper/Development/ClientApps/TBVApp/node_modules/webpack/lib/Watching.js:200:19

我发现另一个有类似错误的帖子。它说 angular v12.2.12 存在问题。我尝试降级到 v12.2.4 但没有帮助。

这是我的 package.json 内容...

{
  “名称”:“愤怒”,
  “版本”:“7.0.0”,
  “脚本”:{
    “ng”:“ng”,
    “开始”:“ng服务--ssl true--ssl-key ../../SSL/localhostdev.key --ssl-cert ../../SSL/localhostdev.crt --host 0.0.0.0 - -disableHostCheck",
    "build": "node --trace-warnings ng build --prod",
    “测试”:“ng测试”,
    “lint”:“ng lint”,
    “e2e”:“ng e2e”,
    "buildtest": "node --trace-warnings & export NODE_OPTIONS=--max_old_space_size=8192 & ng build --extract-css=false --configuration test --aot --outputHashing=all",
    "buildprod": "export NODE_OPTIONS=--max_old_space_size=8192 & ng build --extract-css=false --prod --aot --outputHashing=all",
    "内存": "设置 NODE_OPTIONS=--max_old_space_size=8192",
    “更新:包”:“节点擦除依赖.js && rm -rf node_modules && npm update --save-dev && npm update --save”
  },
  “私人”:真的,
  “依赖”:{
    "@angular/animations": "~12.2.4",
    "@angular/cdk": "~12.2.4",
    "@angular/cli": "~12.2.4",
    "@angular/common": "~12.2.4",
    "@angular/compiler": "~12.2.4",
    "@angular/core": "~12.2.4",
    "@angular/flex-layout": "12.0.0-beta.34",
    "@angular/forms": "~12.2.4",
    "@angular/material": "~12.2.4",
    "@angular/platform-b​​rowser": "~12.2.4",
    "@angular/platform-b​​rowser-dynamic": "~12.2.4",
    "@angular/router": "~12.2.4",
    "@angular/youtube-player": "~12.2.4",
    "@cloudinary/angular": "^1.0.0-beta.11",
    "@cloudinary/angular-5.x": "^1.5.0",
    "@fortawesome/angular-fontawesome": "^0.9.0",
    "@fortawesome/fontawesome-svg-core": "^1.2.36",
    "@fortawesome/free-brands-svg-icons": "^5.15.4",
    "@fortawesome/free-solid-svg-icons": "^5.15.4",
    "@nebular/eva-icons": "8.0.0",
    "@ngx-translate/core": "^13.0.0",
    "@opentok/client": "^2.21.1",
    "@stripe/stripe-js": "^1.20.3",
    "@types/jquery": "^3.5.8",
    "@types/twilio-video": "^2.11.0",
    "@videojs/http-streaming": "^2.11.2",
    “角度日历”:“^0.28.28”,
    “角度-oauth2-oidc”:“^12.1.0”,
    "chart.js": "~3.6.0",
    "chart.piecelabel.js": "~0.15.0",
    "cloudinary-core": "^2.12.0",
    "core-js": "^3.19.0",
    "cors": "^2.8.5",
    "eva-icons": "^1.1.3",
    "hammerjs": "~2.0.8",
    "highlight.js": "~11.3.1",
    "安装": "^0.13.0",
    "jquery": "^3.6.0",
    "jwt-decode": "^3.1.2",
    "lodash-es": "^4.17.21",
    “时刻”:“~2.29.1”,
    "时刻-时区": "^0.5.33",
    "ng-zorro-antd": "^12.0.1",
    "ngx-audio-player": "^11.0.4",
    "ngx-bootstrap": "^7.1.0",
    "ngx-bootstrap-modal": "^2.0.1",
    "ngx-cookie-service": "^12.0.3",
    "ngx-countdown": "^12.0.1",
    "ngx-device-detector": "^2.1.1",
    "ngx-facebook": "^2.4.0",
    "ngx-image-cropper": "^5.0.1",
    "ngx-无限滚动": "^10.0.1",
    "ngx-perfect-scrollbar": "^10.1.1",
    "ngx-quill": "~14.3.0",
    "ngx-slick-carousel": "^0.5.1",
    "ngx-toasta": "^2.0.0",
    "normalize.css": "~8.0.1",
    "npm": "^8.1.2",
    “推动器-js”:“^7.0.3”,
    “羽毛笔”:“^1.3.7”,
    "重新安装": "^2.0.0",
    "rxjs": "^7.4.0",
    “安全管道”:“^1.0.3”,
    "screenfull": "~5.1.0",
    “信号”:“^2.4.2”,
    "simplebar": "~5.3.6",
    “光滑轮播”:“^1.8.1”,
    "smoothscroll-polyfill": "^0.4.4",
    "store-js": "^2.0.4",
    "tslib": "^2.3.1",
    "twilio-video": "^2.18.1",
    "video.js": "^7.15.4",
    "videojs-overlay": "^2.1.5",
    "videojs-resume": "^0.3.2",
    "videojs-youtube": "^2.6.1",
    "webpack-dev-server": "^4.4.0",
    “zone.js”:“~0.11.4”
  },
  “开发依赖”:{
    "@angular-builders/custom-webpack": "^12.1.3",
    "@angular-devkit/build-angular": "~12.2.4",
    "@angular/cli": "~12.2.4",
    "@angular/compiler-cli": "~12.2.4",
    "@angular/language-service": "~12.2.4",
    "@schematics/angular": "~12.2.4",
    "@types/chart.js": "^2.9.34",
    "@types/jasmine": "^3.10.1",
    "@types/jasminewd2": "^2.0.10",
    "@types/lodash-es": "^4.17.5",
    "@types/node": "^16.11.6",
    "浏览器同步": "^2.27.7",
    "codelyzer": "^6.0.2",
    “安装同行”:“^1.0.3”,
    “茉莉花核”:“~3.10.1”,
    "jasmine-spec-reporter": "~7.0.0",
    "业力": "~6.3.6",
    "karma-chrome-launcher": "~3.1.0",
    “karma-coverage-istanbul-reporter”:“~3.0.3”,
    “业力茉莉花”:“〜4.0.1”,
    “karma-jasmine-html-reporter”:“^1.7.0”,
    "少": "^4.1.2",
    "less-plugin-clean-css": "^1.5.1",
    "量角器": "~7.0.0",
    "ts-node": "~10.4.0",
    "tslint": "~6.1.0",
    “打字稿”:“^4.3.5”
  }
}

我已经尝试重新安装所有 node_modules 等。关于如何解决这个问题的任何想法?

谢谢你的帮助!

标签: angular

解决方案


通过基本上从准系统 package.json 开始并开始一一添加所有依赖项,我能够克服这个错误。奇怪的是,我都添加了它们,但我从来没有找到有问题的组件。

我的猜测是对等依赖一定存在问题。通过一步一步的进行,它似乎绕过了这个问题。经历有点痛苦,但它成功了。


推荐阅读