发生未处理的异常:作业名称“..getProjectMetadata”不存在。

153

当我启动我的应用程序时,我会收到这个错误:

**[error] Error: Job name "..getProjectMetadata" does not exist.**
     at Observable._subscribe (/Users/vasil/KSS/kssfrontend/node_modules/@angular-devkit/core/src/experimental/jobs/simple-scheduler.js:350:23)
     at Observable._trySubscribe (/Users/vasil/KSS/kssfrontend/node_modules/@angular-devkit/core/node_modules/rxjs/internal/Observable.js:44:25)
     at Observable.subscribe (/Users/vasil/KSS/kssfrontend/node_modules/@angular-devkit/core/node_modules/rxjs/internal/Observable.js:30:22)
     at /Users/vasil/KSS/kssfrontend/node_modules/@angular-devkit/core/node_modules/rxjs/internal/util/subscribeTo.js:22:31
     at Object.subscribeToResult (/Users/vasil/KSS/kssfrontend/node_modules/@angular-devkit/core/node_modules/rxjs/internal/util/subscribeToResult.js:10:45)
     at SwitchMapSubscriber._innerSub (/Users/vasil/KSS/kssfrontend/node_modules/@angular-devkit/core/node_modules/rxjs/internal/operators/switchMap.js:65:54)
     at SwitchMapSubscriber._next (/Users/vasil/KSS/kssfrontend/node_modules/@angular-devkit/core/node_modules/rxjs/internal/operators/switchMap.js:55:14)
     at SwitchMapSubscriber.Subscriber.next (/Users/vasil/KSS/kssfrontend/node_modules/@angular-devkit/core/node_modules/rxjs/internal/Subscriber.js:66:18)
     at SwitchMapSubscriber.notifyNext (/Users/vasil/KSS/kssfrontend/node_modules/@angular-devkit/core/node_modules/rxjs/internal/operators/switchMap.js:86:26)
     at InnerSubscriber._next (/Users/vasil/KSS/kssfrontend/node_modules/@angular-devkit/core/node_modules/rxjs/internal/InnerSubscriber.js:28:21)
     at InnerSubscriber.Subscriber.next (/Users/vasil/KSS/kssfrontend/node_modules/@angular-devkit/core/node_modules/rxjs/internal/Subscriber.js:66:18)
     at /Users/vasil/KSS/kssfrontend/node_modules/@angular-devkit/core/node_modules/rxjs/internal/util/subscribeTo.js:17:28
     at Object.subscribeToResult (/Users/vasil/KSS/kssfrontend/node_modules/@angular-devkit/core/node_modules/rxjs/internal/util/subscribeToResult.js:10:45)
     at SwitchMapSubscriber._innerSub (/Users/vasil/KSS/kssfrontend/node_modules/@angular-devkit/core/node_modules/rxjs/internal/operators/switchMap.js:65:54)
     at SwitchMapSubscriber._next (/Users/vasil/KSS/kssfrontend/node_modules/@angular-devkit/core/node_modules/rxjs/internal/operators/switchMap.js:55:14)
     at SwitchMapSubscriber.Subscriber.next (/Users/vasil/KSS/kssfrontend/node_modules/@angular-devkit/core/node_modules/rxjs/internal/Subscriber.js:66:18)

我有这些版本:Angular CLI: 8.3.19Node: 12.14.0.

有任何想法是什么导致了这个问题吗?

12个回答

290
似乎存在与@angular-devkit/build-angular相关的问题。尝试通过运行更新它。
npm i @angular-devkit/build-angular

或者通过指定先前版本(例如)将其降级:

npm i @angular-devkit/build-angular@0.803.24

78
升级版本对我无效,但降级到那个特定版本对我有用。 - João Paiva
8
这是翻译的结果:对我有用。我在我的Github上检查了package.json,并升级到了以下版本npm i @angular-devkit/build-angular@~0.803.17,它完美地为我工作了。 - Vikas Kandari
3
对于 Ionic 5 尝试添加 Leaflet 地图, package.json 中的 build-angular 版本显示为 0.900.1,导致了问题;将其他软件包降级到 0.801.12 又带回了高漏洞;降级到 0.803.24 就解决了问题… 不再有漏洞,但仍然不能正常工作,因为 Ionic 5 显示不支持 Angular 9.0。 - Captain Fantastic
2
这个问题通常出现在安装Angular主题时。对我来说,降级版本是有效的解决方法。 - BIJAY
5
由于每个人都提到了适用于他们的特定版本,因此指出该库有标签指向适用于您CLI版本的最新支持版本可能会有所帮助。如果您正在使用Angular 8,则可以使用npm i @angular-devkit/build-angular@v8-lts升级到最新兼容版本,这比几个月前的任何版本更有可能起作用。请参阅https://www.npmjs.com/package/@angular-devkit/build-angular的“版本”选项卡,但您可以猜测哪个标签适合您的版本。 - Casey Hungler
显示剩余7条评论

141

在我的使用的@angular-devkit/build-angular版本中,npm audit发现了漏洞后,我遇到了这个错误。我运行了npm audit fix命令,将其更新为0.900.2,但是当我运行ng serve时,它会给出问题中引用的错误。

我通过降级到版本0.803.25来解决了这个问题。这是我能找到的最高版本,运行ng serve不会导致任何错误。由npm audit发现的漏洞在此版本中得到了解决。

这是我运行的命令:

npm i @angular-devkit/build-angular@0.803.25

2
我也遇到过这种情况,运行审计修复时需要更加小心,因为它实际上会破坏一些令人讨厌的东西。 - Naga
1
我用 npm audit 两次破坏了它,现在我已经解决了漏洞。 - Hidayt Rahman

50

我刚创建了一个新项目,然后遇到了这个错误。由于我没有需要使用的旧代码,并想要使用最新(9.0)版本的Angular,因此我运行了以下命令:

ng update @angular/cli @angular/core

并且它修复了所有问题。


10
这个回答应该被接受,因为它解决了出现此错误的最常见情况。 - Snowman

5
更新@angular-devkit/build-angular版本。

1
尝试删除package-lock.json文件,并重新安装node_modules

1
在运行“npm audit fix”后,我在Ionic 4中遇到了同样的问题,但npm破坏了依赖项的整个版本控制。我尝试了这里列出的大多数方法,但修复了一个问题并创建了一个新问题。所以对我有效的唯一解决方案是手动处理依赖项。请查看您在package.json和package-lock.json中需要的每个软件包的版本(其他软件包依赖于哪个软件包版本,并期望在您的项目中找到它们,我的软件包期望某些文件的三个总版本),在npm安装某些软件包后,有些将显示为cli中的警告,但不是所有软件包都会显示,因此最好进行手动检查。
注意:我发现package-lock.json更容易阅读,但我会参考package.json以确保我仍然在正确的轨道上。

对我来说,主要软件包是Ionic本身(@ionic/angular-toolkit是我能找到与angular相关联的唯一软件包),因此我查看了它期望的angular版本并降级到该版本。然后还必须检查angular需要的每个其他软件包。这是很多工作,花了半天时间修复,但解决了我所有的问题。
  1. 一个Ionic包有这个依赖;
    • @schematics/angular@^8.0.0
    • tslib@^1.9.0
    • ws@^7.0.1

专注于Angular包,我决定
npm install @schematics/angular@8.0.0

  1. 该依赖项 @schematics/angular@8.0.0 具有以下 依赖关系;

    • @angular-devkit/core@8.0.0
    • @angular-devkit/schematics@8.0.0

  2. 依赖项 @angular-devkit/schematics@8.0.0 具有 依赖关系;

    • @angular-devkit/core@8.0.0
    • rxjs@6.4.0

我为所有软件包执行此操作,直到我可以再次构建我的应用程序。但是,如果您已经知道它们所需的版本,您可以一次性安装它们。
npm install @schematics/angular@8.0.0 @angular-devkit/core@8.0.0 @angular-devkit/schematics@8.0.0

如果您已经确定其他软件包应降级或升级以节省时间,则可以将所有软件包放入该 npm install 行中。

希望这能帮助那些在其他评论中找不到解决方案的人。

0

我正在安装ngx-quill并遇到了相同的问题。请确保检查支持的版本。

例如-如果您正在使用Angular 8,请确保安装支持的版本。在ngx-quill的情况下,将会是 npm install ngx-quill@5.2.0


0

我将我的ng8项目升级到了ng9

ncu -u

你不应该这样做,你应该使用ng update进行迁移。 - severin.julien

0
这对我有效:
ng update @angular/cli @angular/core --force

0

运行 ng update 命令将告诉你需要更新的内容。 然后运行相应命令,就可以顺利进行了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接