Angular 4アプリケーションを使用していますが、Angular 5.にアップグレードしています。
次のエラーが発生します。
Src/app/application/services/generated/variables.ts(1,10)のエラー:エラーTS2305:モジュール '"..../node_modules/@ angular/core/core"'にはエクスポートされたメンバー 'OpaqueToken'がありません。
コードスニペットは:
import { OpaqueToken } from '@angular/core';
export const BASE_PATH = new OpaqueToken('basePath');
export const COLLECTION_FORMATS = {
'csv': ',',
'tsv': ' ',
'ssv': ' ',
'pipes': '|'
}
このコードは swagger editor によって生成されます。
package.jsonファイルにfollingが含まれています
"@angular/flex-layout": "^2.0.0-beta.12"
Node_modulesフォルダーを削除し、package.jsonファイルを削除してから、次のコマンドを実行してみてください。この問題が解決されたことを願っています。
npm install
この問題については、次のリンクを参照してください https://github.com/angular/flex-layout/issues/494#issuecomment-343355178
OpaqueTokenが削除されました。代わりにInjectionTokenを使用する必要があります。私も同じ問題に直面しています。現時点では、「最良の」解決策は、各コード生成ビルドの後にトークンを置き換えることです。しかし、それは恒久的な解決策ではありません。
この問題に貢献してください: https://github.com/swagger-api/swagger-codegen/issues/7324
参照してください https://github.com/swagger-api/swagger-codegen/issues/7324#issuecomment-368548716
Angular 5を使用する場合は、バージョン切り替えをサポートするswagger-codegenのバージョンを使用する必要があります。
今回はその最低の安定バージョンは2.3.0です。
その場合、(カスタム構成の場合)ngVersionを任意のバージョンに定義できます。そのsemVerが4.0を超えている限り、OpaqueTokenの代わりに注入トークンが生成されます。
angular 4 to 5を更新するときにこのエラーが発生しました
Package.jsonファイルを変更してこの問題を修正しました
「@ agm/core」:「1.0.0-beta.1」から「@ agm/core」:「1.0.0-beta.5」
npm updateを実行した後
これは、angular 5.2.0にアップグレードしたときに発生しました。結局、次のことを行う必要がありました。
編集済みpackage.json
:@angular/compiler-cli
のバージョンを変更する必要がありました。私の場合、5.2.10に到達したため、5.2.0に戻す必要がありました。
Node_modulesディレクトリを削除しました。
Ran:npm install
インストール済み:npm install @angular/flex-layout
。