Angular5 にアップデートして「Metadata version mismatch for module」エラーが出た
まさに以下の記事どおりの事象に遭遇し、記事どおりの対応方法で修正できた話。
自分の場合は、
- Angular 製のライブラリを作成する段階で、
@angular/compiler-cli
を v1.5 系にバージョンアップしたが、package.json
に記載のバージョンを上げていなかった。- この状態で AoT コンパイルしたファイルをプライベート npm リポジトリに publish した。
という状態で、Angular4 系のアプリにそうやって作ったライブラリを取り込んだところ、
ERROR in Error: Metadata version mismatch for module 【モジュールファイルパス】.ts, found version 3, expected 4
というエラーが出た。
確かに、AoT コンパイル時に生成される .metadata.json
を見ると、先頭の方に "version":4
と記載があった。コレが "version":3
でないと、Angular4 系のアプリとしては不正、ということになるらしい。
だもんで、ひとまずは Angular4 系で動作するようにと、AoT コンパイル時に使用される @angular/compiler-cli
のバージョンを下げておいた。