Nie mogę uzyskać minimalnej aplikacji Angular 2 przy użyciu RxJS z ziemi. Używam Typescript (tsc 1.6.2) i systemjs do ładowania modułów. W jaki sposób uzyskać systems, aby poprawnie załadował moduł Rx? Nie mam pomysłów, by spróbować, i doceniam każdy wskaźnik tego, co robię źle. Ładowanie modułu jest dla mnie trochę magiczne. Bardzo frustrujące.Jak załadować RxJS w minimalnej aplikacji Angular 2 przy użyciu systemjs?
index.html:
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
<script src="../node_modules/es6-shim/es6-shim.js"></script>
<script src="../node_modules/systemjs/dist/system.src.js"></script>
<script src="../node_modules/rx/dist/rx.lite.js"></script>
<script src="../node_modules/angular2/bundles/angular2.dev.js"></script>
</head>
<body>
<app>App loading...</app>
<script>
System.config({
packages: { 'app': { defaultExtension: 'js' } }
});
System.import('app/app');
</script>
</body>
</html>
app.ts:
/// <reference path="../../node_modules/rx/ts/rx.all.d.ts" />
import { bootstrap, Component, View } from 'angular2/angular2';
import * as Rx from 'rx';
@Component({
selector: 'app'
})
@View({
template: `Rx Test`
})
export class App {
subject: Rx.Subject<any> = new Rx.Subject<any>();
}
bootstrap(App);
SystemJS próbuje załadować plik, który nie istnieje:
Jak tylko skomentuję w powyższym kodzie temat, wszystko działa poprawnie, ponieważ nie będzie próby załadowania nieistniejącego pliku (i nie załadowano żadnego pliku rx).
Eric, dziękuję za poświęcenie czasu na odpowiedź! To rozwiązało dla mnie część tajemnicy. Przepraszam, że tak długo wracam do ciebie. Spędziłem większość dzisiejszego dnia, próbując uruchomić ten sam projekt w trybie off-line (bez żadnego prawdziwego sukcesu, który muszę powiedzieć). Używam VSC i Typescript 1.6.2, tego samego transpilera, który jest używany w twoim przykładzie. Kod wygenerowany z ** app.ts ** w wersji "online" ma nieco inny nagłówek, który wydaje się mieć znaczenie (wywołuje "System.register (...)"). Czy udało Ci się skompilować i uruchomić to lokalnie za pomocą VSC/tsc? – Toby
Czy otrzymujesz błąd? W rzeczywistości, w mojej wersji offline (mój własny projekt) mam 'import * jako Temat z '...'' (trochę inaczej niż moja odpowiedź, czy masz coś innego? Jaka jest różnica między twoją wersją online a wersją offline ? –
A więc otrzymujesz błędy w czasie wykonywania? Lub nie działa po cichu? Czy używasz jakiegoś narzędzia, takiego jak JSPM, Webpack, czy coś w tym stylu? Czy możesz utworzyć repozytorium, aby móc je sklonować i zobaczyć? –