从 8 更新到 Angular 11 时出错:无法解析 '/Users/foo/node_modules/request' 中的 'util'

Att*_*s29 5 npm webpack angular angular8 angular11

我正在对我的 Angular 8 项目 \xe2\x86\x92 Angular 11 进行重大更新。

\n

我很好地遵循了https://update.angular.io/?l=3&v=8.2-11.0的步骤。

\n

我的项目中有一些软件包似乎与 v.^11 不兼容,因此我使用以下命令安装了这些软件包

\n
npm install --legacy-peer-deps\n
Run Code Online (Sandbox Code Playgroud)\n

当我尝试使用 提供内容时ng serve,我收到大量无法解析“util”和无法解析“zlib”消息。例如,

\n
\n

错误:/Users/mf/node_modules/snapdragon/lib/parser.js 找不到模块:错误:无法解析\n\'/Users/mf/node_modules/snapdragon/lib\'中的\'util\'

\n

错误:/Users/mf/node_modules/sshpk/lib/certificate.js 未找到模块:错误:无法解析\n\'/Users/mf/node_modules/sshpk/lib\'中的\'util\'

\n

错误:/Users/mf/node_modules/sshpk/lib/private-key.js 未找到模块:错误:无法解析\n\'/Users/mf/node_modules/sshpk/lib 中的\'util\' \'

\n

错误:/Users/mf/node_modules/sshpk/lib/errors.js 找不到模块:\n错误:无法解析 \'/Users/mf/node_modules/sshpk/lib\' 中的 \'util\'

\n

错误:/Users/mf/node_modules/sshpk/lib/ed-compat.js 找不到模块:\n错误:无法解析 \'/Users/mf/node_modules/sshpk/lib\' 中的 \'util\'

\n

错误:/Users/mf/node_modules/sshpk/lib/identity.js 找不到模块:\n错误:无法解析 \'/Users/mf/node_modules/sshpk/lib\' 中的 \'util\'

\n

错误:/Users/mf/node_modules/static-extend/index.js 找不到模块:\n错误:无法解析 \'/Users/mf/node_modules/static-extend\' 中的 \'util\'

\n

错误:/Users/mf/node_modules/through2/through2.js 找不到模块:\n错误:无法解析 \'/Users/mf/node_modules/through2\' 中的 \'util\'

\n

错误:/Users/mf/node_modules/tough-cookie/lib/memstore.js 未找到模块:错误:无法解析\n\'/Users/mf/node_modules/tough-cookie 中的\'util\' /lib\'

\n

错误:/Users/mf/node_modules/tunnel-agent/index.js 找不到模块:\n错误:无法解析 \'/Users/mf/node_modules/tunnel-agent\' 中的 \'util\'

\n

0mError: /Users/mf/node_modules/verror/lib/verror.js 找不到模块:\n错误: 无法解析 \'/Users/mf/node_modules/verror/lib\' 中的 \'util\'

\n

错误:/Users/mf/node_modules/@google-cloud/storage/src/file.js 未找到模块:错误:无法解析\n\'/Users/mf/node_modules/中的\'zlib\' @google-cloud/storage/src\'

\n

错误:/Users/mf/node_modules/request/request.js 找不到模块:\n错误:无法解析 \'/Users/mf/node_modules/request\' 中的 \'zlib\'

\n
\n

这些错误看起来像是跨越多个包???\n我不确定如何解决或是否有人以前见过这个(谷歌建议不完全是?)。

\n

我无法成功地将 stackBlitz 设置为此错误的演示(我也向他们提交了有关 github 集成的票证)。

\n

因此,我能做的最好的事情就是提供我的 package.json 来帮助您重现问题:

\n
{\n  "name": "data-jitsu",\n  "version": "0.0.0",\n  "license": "MIT",\n  "scripts": {\n    "ng": "ng",\n    "start": "ng serve",\n    "build": "ng build",\n    "test": "ng test",\n    "lint": "ng lint",\n    "e2e": "cypress open"\n  },\n  "private": true,\n  "dependencies": {\n    "@angular-devkit/build-angular": "~0.1102.7",\n    "@angular/animations": "^11.2.8",\n    "@angular/cdk": "^11.2.7",\n    "@angular/common": "^11.2.8",\n    "@angular/compiler": "^11.2.8",\n    "@angular/compiler-cli": "^11.2.8",\n    "@angular/core": "^11.2.8",\n    "@angular/fire": "^6.1.4",\n    "@angular/forms": "^11.2.8",\n    "@angular/localize": "^11.0.0 || ^11.2.0-next",\n    "@angular/material": "^11.2.7",\n    "@angular/platform-browser": "^11.2.8",\n    "@angular/platform-browser-dynamic": "^11.2.8",\n    "@angular/router": "^11.2.8",\n    "@angular/service-worker": "^11.0.0 || ^11.2.0-next",\n    "@types/youtube": "^0.0.42",\n    "ajv": "^8.0.5",\n    "angular-froala-wysiwyg": "^3.2.6-1",\n    "autoprefixer": "^10.0.2",\n    "core-js": "^3.0.0",\n    "d3": "^6.6.2",\n    "firebase": "^8.4.0",\n    "grpc": "^1.24.6",\n    "hammerjs": "^2.0.8",\n    "html2canvas": "^1.0.0-rc.5",\n    "jquery": "^3.6.0",\n    "karma": "^5.2.0 || ^6.0.0",\n    "moment": "^2.29.1",\n    "ng-packagr": "^11.0.0 || ^11.2.0-next",\n    "ngx-youtube-player": "9.1.0",\n    "postcss": "^8.0.9",\n    "protractor": "^7.0.0",\n    "rxjs": "^6.6.7",\n    "stripe": "^8.142.0",\n    "tailwindcss": "^2.0.0",\n    "tslib": "^2.2.0",\n    "tslint": "^6.1.0",\n    "typescript": "~4.0.0 || ~4.1.0 >=4.0 <4.2",\n    "util": "^0.11.1",\n    "zone.js": "~0.11.3"\n  },\n  "devDependencies": {\n    "@angular-eslint/builder": "^2.0.0",\n    "@angular-eslint/eslint-plugin": "^2.0.0",\n    "@angular-eslint/eslint-plugin-template": "^2.0.0",\n    "@angular-eslint/schematics": "2.0.2",\n    "@angular-eslint/template-parser": "^2.0.0",\n    "@angular/cli": "^11.2.7",\n    "@angular/compiler-cli": "^8.2.3",\n    "@angular/language-service": "^11.2.8",\n    "@cypress/webpack-preprocessor": "^5.7.0",\n    "@types/bootstrap": "^5.0.12",\n    "@types/d3": "^6.3.0",\n    "@types/jasmine": "~3.6.9",\n    "@types/jasminewd2": "~2.0.3",\n    "@types/node": "^14.14.37",\n    "@typescript-eslint/eslint-plugin": "4.16.1",\n    "@typescript-eslint/parser": "4.16.1",\n    "chance": "^1.0.16",\n    "cypress": "^7.0.0",\n    "eslint": "^7.6.0",\n    "eslint-plugin-import": "2.22.1",\n    "eslint-plugin-jsdoc": "30.7.6",\n    "eslint-plugin-prefer-arrow": "1.2.2",\n    "jasmine-core": "~3.5.0",\n    "jasmine-spec-reporter": "~5.0.0",\n    "karma": "~5.0.0",\n    "karma-chrome-launcher": "~3.1.0",\n    "karma-cli": "~2.0.0",\n    "karma-coverage-istanbul-reporter": "~3.0.2",\n    "karma-jasmine": "~4.0.0",\n    "karma-jasmine-html-reporter": "^1.5.0",\n    "protractor": "~7.0.0",\n    "ts-loader": "^8.1.0",\n    "ts-node": "~9.1.1",\n    "typescript": "~4.1",\n    "webpack": "~4.18.1"\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

并将您链接到我的 github 存储库上的分支:\n https://github.com/Atticus29/dataJitsu/tree/delete-user-version-upgrade

\n

所以,

\n
git clone https://github.com/Atticus29/dataJitsu.git\ncd dataJitsu\ngit checkout delete-user-version-upgrade\nnpm install --legacy-peer-deps\nng serve\n
Run Code Online (Sandbox Code Playgroud)\n

应该让你明白我的错误。

\n

Sal*_*med 1

以下任何一组命令可能可以解决您的问题:

npm uninstall -g @angular/cli
npm install -g @angular/cli
Run Code Online (Sandbox Code Playgroud)

或者

remove node_modules 
remove package-lock.json
npm install 
Run Code Online (Sandbox Code Playgroud)