web-dev-qa-db-ja.com

Angular 5 as:のエラー:エクスポートされたメンバー「OpaqueToken」がないのはなぜですか?

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

2
shailesh

OpaqueTokenが削除されました。代わりにInjectionTokenを使用する必要があります。私も同じ問題に直面しています。現時点では、「最良の」解決策は、各コード生成ビルドの後にトークンを置き換えることです。しかし、それは恒久的な解決策ではありません。

この問題に貢献してください: https://github.com/swagger-api/swagger-codegen/issues/7324

2
user9112752

参照してください https://github.com/swagger-api/swagger-codegen/issues/7324#issuecomment-368548716

Angular 5を使用する場合は、バージョン切り替えをサポートするswagger-codegenのバージョンを使用する必要があります。

今回はその最低の安定バージョンは2.3.0です。

その場合、(カスタム構成の場合)ngVersionを任意のバージョンに定義できます。そのsemVerが4.0を超えている限り、OpaqueTokenの代わりに注入トークンが生成されます。

1
KeniSteward

angular 4 to 5を更新するときにこのエラーが発生しました

Package.jsonファイルを変更してこの問題を修正しました

「@ agm/core」:「1.0.0-beta.1」から「@ agm/core」:「1.0.0-beta.5」

npm updateを実行した後

1

これは、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

0
Ben