Ich habe eine Angular 4-Anwendung, die ich auf Angular 5 aktualisiere.
Ich erhalte den folgenden Fehler.
FEHLER in src/app/application/services/generated/variables.ts (1,10): Fehler TS2305: Modul '"..../node_modules/@ angle/core/core"' hat kein exportiertes Mitglied 'OpaqueToken'.
Code-Snippet ist:
import { OpaqueToken } from '@angular/core';
export const BASE_PATH = new OpaqueToken('basePath');
export const COLLECTION_FORMATS = {
'csv': ',',
'tsv': ' ',
'ssv': ' ',
'pipes': '|'
}
Dieser Code wurde von swagger editor generiert.
enthält das Folgen in der Datei package.json
"@angular/flex-layout": "^2.0.0-beta.12"
Versuchen Sie, den Ordner node_modules zu löschen, löschen Sie die package.json -Datei und führen Sie dann den folgenden Befehl aus. Ich hoffe, das Problem wurde behoben
npm install
bitte beziehen Sie sich auf den folgenden Link zu dieser Ausgabe https://github.com/angular/flex-layout/issues/494#issuecomment-343355178
Das OpaqueToken wurde entfernt. Sie müssen stattdessen das InjectionToken verwenden. Ich stehe vor demselben Problem. Im Moment besteht die "beste" Lösung darin, die Token nach jedem Code-Gen-Build zu ersetzen. Das ist aber keine dauerhafte Lösung.
Bitte tragen Sie zu diesem Problem bei: https://github.com/swagger-api/swagger-codegen/issues/7324
Bitte sehen Sie https://github.com/swagger-api/swagger-codegen/issues/7324#issuecomment-368548716
Wenn Sie Angular 5 verwenden möchten, müssen Sie die Version von swagger-codegen verwenden, die die Versionsumschaltung unterstützt.
Dass diesmal die niedrigste stabile Version von 2.3.0 ist
In diesem können Sie (für benutzerdefinierte Konfiguration) ngVersion auf jede Version definieren, die Sie möchten. Solange dieser Wert über 4,0 liegt, wird ein Injektionstoken anstelle von OpaqueToken generiert.
Dies geschah beim Upgrade auf Winkel 5.2.0. Am Ende musste ich folgendes tun:
Editierter package.json
: Musste meine Version für @angular/compiler-cli
ändern. In meinem Fall musste ich es auf 5.2.0 zurückbringen, da es irgendwie zu 5.2.10 kam.
Das Verzeichnis node_modules wurde gelöscht.
Ran: npm install
Installiert: npm install @angular/flex-layout
.