2020年2月28日金曜日

Angularのバージョンアップ(7から8)後に「An unhandled exception occurred: Job name "..getProjectMetadata" does not exist.」が発生した場合の対処。


こんにちは。
最近は、CI/CD周りの環境構築にどっぷり浸かっていましたKoma(Twitterアカウントの中の人&CEO)です。
CI/CD周りはいずれ投稿するとして、今日はAngularのアップデート時に発生したエラーの解消方法です。

結論から言うと、バージョン「9」がリリースされた今だけ限定の事象ではあるのですが、
日本語で解決策を載せているサイトが無かったので、勢いで書きました。

(1)エラーが出る前にやっていたこと

今回やっていたことは以下の通りです。
・既存のAngularプロジェクトのバージョンをアップデート(8.2へ)
・既存のバージョンは「7.2」

バージョンアップ自体は、いつもの通り、Angular Update Guideを参考に行なっています。

(2)エラーの内容

アップデート自体は、うまく行ったのですが、その後の起動(ng serve)で下記のエラーが発生しました。
An unhandled exception occurred: Job name "..getProjectMetadata" does not exist.

(3)対応した内容

実は、本家のissueにも登録されている内容なのですが、
アップデート後に、「npm audit fix」をやってしまった事が原因です。
(というか、普通やりますけど)

「npm audit fix」によって、関連のプラグインがアップデートされますが、
この時、「@angular-devkit/build-angular」のバージョンが上がってしまうことに問題があります。
「npm audit fix」後の package.jsonを見ると・・・・
"@angular-devkit/build-angular": "^0.900.4",
となっています。
これが、Angular 9用のバージョンなのですが、今回アップデートしようとしているのはバージョン8なので、エラーになってしまうのですね。

と言うことで、
"@angular-devkit/build-angular": "~0.803.24",
に戻したところ、エラーはなくなり、無事に起動(ng serve)出来ました。

気持ち的には、「Angular 9」にアップデートしたいところなのですが、使用しているプラグインの対応を待たないといけないので、もどかしいところですね。
(時間さえあれば、プラグインの更新に貢献したいところなのですが・・・)

さて、これから残り3サイトのアップデートを行おうと思います。😭
しんどいけど、アップデートされず放置されているシステムが世の中に溢れていることを考えると、
アップデート出来るだけ、恵まれてますね😄

では、より良いAngularライフを❗️


1 件のコメント:

  1. Angular初心者です。どうやってダウングレードするかはこの記事からわかりませんでしたが、次の検索項目の手がかりになりました。おかげさまでまた起動できました。ありがとうございます。

    返信削除