Cómo cargar RxJS (y zone.js / reflect-metadata) con Angular 2 (beta y más reciente)

A partir de Angular 2 Alpha 54 ( logging de cambios ), RxJS ya no se incluye en Angular 2.

Actualización: Resulta que zone.js y zone.js reflect-metadata también están excluidos.

Como resultado, ahora recibo los siguientes errores (como se ve en la console de desarrollo de Chrome):

 system.src.js:4681 GET http://localhost:3000/rxjs/Subject 404 (Not Found)F @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681 system.src.js:4681 GET http://localhost:3000/rxjs/observable/fromPromise 404 (Not Found)F @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681 localhost/:1 Uncaught (in promise) Error: XHR error (404 Not Found) loading http://localhost:3000/rxjs/Subject(…)t @ system.src.js:4681g @ system.src.js:4681(anonymous function) @ system.src.js:4681 system.src.js:4681 GET http://localhost:3000/rxjs/operator/toPromise 404 (Not Found)F @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681(anonymous function) @ system.src.js:4681 system.src.js:4681 GET http://localhost:3000/rxjs/Observable 404 (Not Found) 

Tengo RxJS en mi file package.json (^ 5.0.0-beta.0), y se ha instalado con npm , pero el problema es que simplemente no estoy lo suficientemente familiarizado con SystemJS en este momento para que todo funcione. Aquí está la sección del cuerpo de mi file index.html :

 <body> <app></app> <!-- my main Angular2 tag, which is defined in app/app as referenced below --> <script src="../node_modules/systemjs/dist/system.js"></script> <script src="../node_modules/typescript/lib/typescript.js"></script> <script src="../node_modules/angular2/bundles/angular2.dev.js"></script> <script src="../node_modules/angular2/bundles/http.dev.js"></script> <script> System.config({ packages: {'app': {defaultExtension: 'js'}} }); System.import('./app/app'); </script> <script src="http://localhost:35729/livereload.js"></script> </body> 

He estado jugando con otras configuraciones, pero ninguna me ha llevado hasta allí. Creo que esto es relativamente simple, es solo mi falta de comprensión o la forma en que se usan las herramientas lo que me está deteniendo.

Aquí está mi file app.ts que es la app/app hace reference en la configuration de SystemJS:

 import {Component} from 'angular2/core'; import {bootstrap} from 'angular2/platform/browser'; import {COMMON_DIRECTIVES} from 'angular2/common'; @Component({ selector: 'app', directives: [], template: `<div>{{greeting}}, world!</div>` }) export class App { greeting:string = 'Hello'; } bootstrap(App, [COMMON_DIRECTIVES]); 

Estoy sirviendo la aplicación con un server Express carga en vivo que usa asignaciones estáticas para que las llamadas como http://localhost:3000/node_modules/rxjs/Rx.js puedan get el file necesario aunque index.html se http://localhost:3000/node_modules/rxjs/Rx.js desde /src como la raíz del server y node_modules está realmente en el mismo nivel que src y no dentro de él.

Cualquier ayuda sería, como siempre, apreciada.

Entonces resulta que el problema se solucionó fácilmente cambiando la configuration de SystemJS a la siguiente en mi file index.html :

 System.config({ map: { rxjs: 'node_modules/rxjs' // added this map section }, packages: { 'app': {defaultExtension: 'js'}, 'rxjs': {defaultExtension: 'js'} // and added this to packages } }); System.import('app/app'); 

En realidad, lo había intentado, pero lo que no me di count fue que zone.js y zone.js reflect-metadata ya no estaban incluidos en Angular 2, y me estaba encontrando con ese problema también.

Para quienes estén interesados, zone.js la falta de zone.js y zone.js reflect-metadata más fácilmente al include el file angular2-polyfills.js en mi index.html:

 <script src="../node_modules/angular2/bundles/angular2-polyfills.js"></script> 

Ahora mi aplicación funciona igual que con Alpha 53.