Ich benutze angular-cli, um meine typoskriptgetriebene angular2-App laufen zu lassen. Ich habe eine AppComponent
wie folgt definiert:
angular-cli kann diese Datei nicht kompilieren, weil sie sich mit einem Fehler beschwert, der im Thema dieser Frage in der Zeile moduleId: module.id
erwähnt wird.
Meine tsconfig.json
-Datei ist wie folgt definiert:
Um module.id
verwenden zu können, muss Ihr Projekt ein commonjs-Modul sein, d. h. das Attribut module
, das in der Datei tsconfig.json auf commonjs
gesetzt ist. Ist es so:
Eine mögliche Problemumgehung könnte sein, eine app.d.ts Datei wie folgt hinzuzufügen
Da migrated zur Verwendung von webpack migriert wurde, muss moduleId
nicht mehr deklariert werden. als webpack plugins handle (add it) module.id
im letzten Bundle.
Ab 13.03.2017 Angular hat alle Verweise auf moduleId
entfernt, da es aufgrund der Einbindung von webpack nun veraltet ist.
Wir haben unserer empfohlenen SystemJS-Konfiguration ein neues SystemJS-Plugin (systemjs-angular-loader.js) hinzugefügt. Dieses Plugin konvertiert dynamisch "komponentenbezogene" Pfade in templateUrl und styleUrls in "absolute paths" für Sie.
Wir empfehlen Ihnen dringend, nur komponentenbezogene Pfade zu schreiben. Dies ist die einzige Form von URL, die in diesen Dokumenten behandelt wird. Sie müssen nicht mehr @Component ({moduleId: module.id}) schreiben, und Sie sollten auch nicht.
Ich hatte heute das gleiche Problem, als ich eine erste Komponente in einem Feature-Ordner mit dem angular-cli erstellte. Wie Maxime sagte, können Sie dies ohne eine Modul-ID tun. Aber Sie müssen einen relativen Pfad für Ihre Vorlage und Ihre Stile verwenden, wie in der initial generierten app.component:
%Vor%Tags und Links javascript angular