Es fällt mir schwer herauszufinden, wie genau diese Importanweisung funktioniert (in einer Angular-Anwendung, die in Typescript geschrieben ist):
%Vor% Ich bekomme, dass rxjs
dem entsprechenden node_modules
Unterordner in der SystemJS Konfigurationsdatei zugeordnet ist, aber dann stecke ich fest. Ich sehe, dass es eine index.js-Datei gibt, aber ich sehe nicht, ob und wie dies hilft, den add/operator/...
-Teil aufzulösen.
Ähnlich verstehe ich das nicht:
%Vor% Auch hier gibt es keine Datei Observable.*
file. Ich denke, dass es irgendwie über die index.js-Datei funktioniert, aber ich würde wirklich gerne ein tiefergehendes Verständnis bekommen, da ich gelesen habe, dass es einfach ist, RxJS aus Versehen zu importieren, was die Seitenladezeiten erhöht.
Ich habe mir die Dokumentation der Typoskript-Modul-Auflösung näher angesehen, aber ich habe das Gefühl, dass dies nicht ausreicht, um es zu erklären.
Update: Nach dem Lesen der untenstehenden Antwort habe ich herausgefunden, dass ich das Verzeichnis node_modules/rx
anstelle von node_modules/rxjs
gesucht habe, damit die Importanweisungen perfekt mit der Verzeichnisstruktur übereinstimmen.
Es ist ziemlich einfach, weil TypeScript standardmäßig in node_modules
Verzeichnis sucht.
Importieren Sie Folgendes:
%Vor% wird als node_modules/rxjs/Observable.d.ts
aufgelöst, was ausreicht, um den Code zu kompilieren.
Ähnlich wird der Import von rxjs/add/operator/toPromise
als node_modules/rxjs/add/operator/toPromise.ts
aufgelöst. Übrigens können Sie mit der Compileroption --traceResolution
sehen, welcher TypeScript-Pfad getestet wird.
Wenn Sie Ihr kompiliertes JS (zB in commonjs
Format) haben, können Sie Ihre App in node
ausführen, weil sie require('rxjs/Observable')
aufruft, was in node_modules/rxjs/Observable.js
aufgelöst wird. Dann ähnlich mit rxjs/add/operator/toPromise
.
Beachten Sie, dass die Code-Struktur der RxJS github-Seite sich vom tatsächlichen npm-Paket unterscheidet. Im Grunde nur das package.json
und das src
Verzeichnis mit dem kompilierten .js
und .d.ts
Dateien werden in das npm-Repository hochgeladen (die ursprünglichen .ts
-Quelldateien sind in node_modules/rxjs/src
, aber Sie möchten nie direkt mit ihnen arbeiten).
Tags und Links angular typescript rxjs rxjs5