Typescript findet das Modul in diesem Import import ga from 'googleAnalytics';
SystemJS weiß, wo das Modul zu finden ist, da es wie folgt vorgemerkt wurde:
%Vor% Wie kann ich eine ähnliche Zuordnung zum tsc
erstellen?
Diese andere Frage scheint in eine gute Richtung zu weisen: Wie vermeidet man Importe mit sehr langen relativen Pfaden in Angular 2?
Typescript 2.0 scheint die paths
config für die tsconfig.json
. Gibt es eine Möglichkeit, Typescript 2.0 herunterzuladen? Kann ich der path
config eine HTTP-URL (//www.google-analytics.com/analytics.js) geben, so wie ich es mit mache SystemJS ? Wenn es keine Möglichkeit gibt, Typescript 2.0 herunterzuladen, wie kann ich mit der aktuellen Version das erreichen, was ich möchte?
Bearbeiten
Der spezifische Fehler, den ich bekomme, ist: "Das Modul 'ga'" kann nicht gefunden werden.
Hier ist mein tsconfig.json
:
Ich nehme an, Sie verstehen, dass im Falle der Typoskript-Kompilierung der transpiler nach Dateien sucht. Er muss die Typdefinition des externen Moduls kennen. Ich habe Fall, Sie haben aktive Nodejs Modul-Auflösung (Sie haben) und Sie verwenden einen nicht-relativen Pfad (Sie tun) müssen Sie zu Ihrem Projekt node_modules Verzeichnis hinzufügen (vielleicht haben Sie bereits eine) und zu diesem Verzeichnis hinzufügen googleAnalytics.d.ts Datei oder Sie können das Verzeichnis node_modules / googleAnalytics erstellen und dort index.d.ts hinzufügen. Definitionstypen für Google Analytics können aus dem Repository heruntergeladen werden
Weitere Informationen zur Modulauflösung hier
BEARBEITEN: Ihrem Kommentar zufolge müssen Sie möglicherweise den Modul-Export zur Google-Definitionsdatei hinzufügen
%Vor% Dieses Problem kann mit Typescript Type Definitions
Um die Definition zu verwenden:
Fügen Sie diese Zeile der .ts-Datei hinzu, die Google Analytics importieren soll:
%Vor%Aktualisieren
Es hat bei mir funktioniert, als ich tsc
ausgeführt habe. Tut mir leid, ich habe vergessen hinzuzufügen:
ga
in Ihrem import
s und SystemJS Mapping. Dies bedeutet nicht, dass der Compiler weiß, dass er die SystemJS-Datei überprüfen muss, sondern fungiert nur als Platzhalter für das importierte Modul, sodass kein Fehler ausgelöst wird und wir das Modul tatsächlich zur Laufzeit mit SystemJS auflösen können.
Tags und Links typescript systemjs tsc tsconfig