Angle-cli(ng build
)を使用してngx-clipboardを使用するAngular 4アプリを構築しようとしています。数日前に突然次のエラーが発生しました私のアプリケーションのソースコードは変更されていませんが:
ERROR in Metadata version mismatch for module
ngx-clipboard/dist/index.d.ts, found version 4, expected 3, resolving
symbol AppModule in ...
以前使用していた古いコミットに戻すと、同じ方法で失敗します。
パッケージ管理にnpmを使用しています。 package.json
からの抜粋:
"dependencies": {
"@angular/animations": "4.0.0",
"@angular/common": "4.0.0",
"@angular/compiler": "4.0.0",
"@angular/compiler-cli": "4.0.0",
"@angular/core": "4.0.0",
"@angular/forms": "4.0.0",
"@angular/http": "4.0.0",
"@angular/platform-browser": "4.0.0",
"@angular/platform-browser-dynamic": "4.0.0",
"@angular/platform-server": "4.0.0",
"@angular/router": "4.0.0",
"@types/highcharts": "^5.0.8",
"angular2-busy": "^2.0.1",
"bootstrap": "^3.3.6",
"core-js": "^2.4.1",
"element-resize-detector": "^1.1.11",
"highcharts": "5.0.8",
"jquery": "^1.11.3",
"moment": "^2.10",
"ng2-dragula": "^1.5.0",
"ng2-tooltip": "0.0.7",
"ngx-bootstrap": "^1.8.1",
"ngx-clipboard": "^8.0.2",
"ngx-clipboard": "~8.0.2",
"ngx-popover": "0.0.16",
"primeng": "4.1.0",
"rxjs": "~5.0.3",
"ts-helpers": "^1.1.2",
"zone.js": "^0.8.4",
"ngx-infinite-scroll": "^0.5.2",
"ng-circle-progress": "0.9.6",
"@ngx-translate/core": "^7.1.0"
},
"devDependencies": {
"@angular/cli": "1.0.0",
"@types/jasmine": "2.5.52",
"codelyzer": "~3.0.1",
"frisby": "~0.8.5",
"jasmine-core": "2.6.3",
"jasmine-reporters": "^2.2.1",
"jasmine-spec-reporter": "4.1.0",
"karma": "1.7.0",
"karma-cli": "^1.0.1",
"karma-jasmine": "^1.1.0",
"karma-phantomjs-launcher": "^1.0.4",
"karma-remap-istanbul": "^0.6.0",
"protractor": "~5.2.0",
"protractor-jasmine2-screenshot-reporter": "^0.5.0",
"stylelint": "^7.11.0",
"stylelint-config-standard": "^16.0.0",
"ts-node": "3.3.0",
"tslint": "~5.4.3",
"TypeScript": "~2.3.4"
}
依存関係"ngx-clipboard": "^8.0.2"
がv8.1.2に解決されることに注意してください。これは、ビルドエラーとタイミングが一致する最近のアップグレードです。 ngx-clipboardの前のバージョンとの間で diffs を調べると、Angular 5へのアップグレードが含まれています。
ビルドエラーメッセージがAngular互換性の問題を示していることがわかりました。 ngx-clipboardにはAngular 5+が必要ですが、package.jsonからわかるように、Angular 4が現在提供されています。 ngx-clipboard依存バージョン指定子を8.1.1
または~8.0.2
にダウングレードすると、ビルドは再び成功します。代わりにAngular 5にアップグレードすると、ビルドもパスするはずです。
これは、ERROR in Metadata version mismatch for module <X> found version 4, expected 3, resolving symbol <Y>
からのビルドエラーangular-cli
に適用される一般的なパターンです。
Angular 5にアップグレードするか、依存関係(現在Angular 5に依存している)をAngularと互換性のある以前のバージョンにダウングレードします.4。
このソリューションは、問題の特定に役立ちました。
同様のソリューションを使用した、同じパターンの追加インスタンスを次に示します。