Mam twardy czas na zastanawianie się, jak to dokładnie działa instrukcji import (w kątowym aplikacja napisana w maszynopisie):Próbując zrozumieć importu RxJS
import 'rxjs/add/operator/toPromise';
otrzymuję że rxjs
jest odwzorowany z odpowiednią node_modules
podfolder w pliku konfiguracyjnym SystemJS, ale utknąłem. Widzę, że istnieje plik index.js, ale nie widzę, czy i jak to pomaga rozwiązać część add/operator/...
.
Podobnie, nie rozumiem tego:
import {Observable} from 'rxjs/Observable';
Ponownie, nie ma pliku Observable.*
plik w tym miejscu. Domyślam się, że działa jakoś poprzez plik index.js, ale naprawdę chciałbym uzyskać dokładniejsze zrozumienie, ponieważ przeczytałem, że łatwo jest zaimportować wszystkie RxJS przez przypadek, co wydłuża czas ładowania strony.
Z bliska przyjrzałem się dokumentacji dotyczącej modułu Typescript, ale mam wrażenie, że nie jest to wystarczające, by to wyjaśnić.
Aktualizacja: Po przeczytaniu zaakceptowane odpowiedź poniżej zorientowali się, szukałem w katalogu node_modules/rx
zamiast node_modules/rxjs
więc oświadczenia import pasuje idealnie ze strukturą katalogów.
O nie, patrzyłem na zły katalog ... "rx", a nie "rxjs". Teraz jest zupełnie jasne, dzięki! – lex82
Martin, dlaczego użyli przedrostka '/ add'? To nie ma żadnego sensu. –
@Royi Co nie ma sensu? Wszystkie pliki w katalogu '/ add/...' służą do dodania operatora do 'Observable.prototype' (np. Https://github.com/ReactiveX/rxjs/blob/master/src/add/operator/ buffer.ts). Pozwala to na używanie tylko tych operatorów, których faktycznie potrzebuję w moim projekcie, a zatem pakowacze JS z drżeniem drzew (rollup.js, webpack2 i może więcej) mogą generować mniejsze pakiety. – martin