我将 Angular 升级到 v9 后,尝试回滚到 v8 时遇到了这个错误。我已经尝试了以下操作:
- 卸载全局 angular/cli
- 卸载 angular/cli
- 回滚至上一个 package.json
- 删除 node_modules 文件夹
- 删除 repo
但仍然出现了这个错误。
我的堆栈跟踪(stacktrace)是:
An unhandled exception occurred: Job name "..getProjectMetadata" does not exist.
See angular-errors.log for further details.
angular-errors.log :
[error] Error: Job name "..getProjectMetadata" does not exist.
at Observable._subscribe (/Front/node_modules/@angular-devkit/core/src/experimental/jobs/simple-scheduler.js:350:23)
at Observable._trySubscribe (/Front/node_modules/@angular-devkit/core/node_modules/rxjs/internal/Observable.js:44:25)
at Observable.subscribe (/Front/node_modules/@angular-devkit/core/node_modules/rxjs/internal/Observable.js:30:22)
at /Front/node_modules/@angular-devkit/core/node_modules/rxjs/internal/util/subscribeTo.js:22:31
at Object.subscribeToResult (/Front/node_modules/@angular-devkit/core/node_modules/rxjs/internal/util/subscribeToResult.js:10:45)
at SwitchMapSubscriber._innerSub (/Front/node_modules/@angular-devkit/core/node_modules/rxjs/internal/operators/switchMap.js:65:54)
at SwitchMapSubscriber._next (/Front/node_modules/@angular-devkit/core/node_modules/rxjs/internal/operators/switchMap.js:55:14)
at SwitchMapSubscriber.Subscriber.next (/Front/node_modules/@angular-devkit/core/node_modules/rxjs/internal/Subscriber.js:66:18)
at SwitchMapSubscriber.notifyNext (/Front/node_modules/@angular-devkit/core/node_modules/rxjs/internal/operators/switchMap.js:86:26)
at InnerSubscriber._next (/Front/node_modules/@angular-devkit/core/node_modules/rxjs/internal/InnerSubscriber.js:28:21)
at InnerSubscriber.Subscriber.next (/Front/node_modules/@angular-devkit/core/node_modules/rxjs/internal/Subscriber.js:66:18)
at /Front/node_modules/@angular-devkit/core/node_modules/rxjs/internal/util/subscribeTo.js:17:28
at Object.subscribeToResult (/Front/node_modules/@angular-devkit/core/node_modules/rxjs/internal/util/subscribeToResult.js:10:45)
at SwitchMapSubscriber._innerSub (/Front/node_modules/@angular-devkit/core/node_modules/rxjs/internal/operators/switchMap.js:65:54)
at SwitchMapSubscriber._next (/Front/node_modules/@angular-devkit/core/node_modules/rxjs/internal/operators/switchMap.js:55:14)
at SwitchMapSubscriber.Subscriber.next (/Front/node_modules/@angular-devkit/core/node_modules/rxjs/internal/Subscriber.js:66:18)
ng --version:
显示Angular CLI的版本号。
Angular CLI: 8.3.18
Node: 12.15.0
OS: darwin x64
Angular: 8.2.13
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.803.18
@angular-devkit/build-angular 0.900.1
@angular-devkit/build-optimizer 0.900.1
@angular-devkit/build-webpack 0.900.1
@angular-devkit/core 8.3.18
@angular-devkit/schematics 8.3.18
@angular/cdk 8.2.3
@angular/cli 8.3.18
@angular/material 8.2.3
@ngtools/webpack 9.0.1
@schematics/angular 8.3.18
@schematics/update 0.803.18
rxjs 6.5.3
typescript 3.5.3
webpack 4.41.2
npm audit fix
后,我遇到了这个错误。尽管我锁定了依赖项,但它仍然升级到了Angular 9,而我并不想要这个版本。像往常一样,在Angular的主要版本发布时,升级非常不方便且繁琐。我建议如果不是绝对必要的话,还是保持在Angular 8上,因为很多依赖项还没有更新到最新版本,会导致很多错误。 - Michelangelonpm audit fix
后撤销了更改,然后执行了npm i && npm update && npm audit fix && npm audit fix
。所以基本上是先更新,然后再进行审计修复。这对我起作用了。 - doptrois