Como carregar o RxJS (e zone.js / reflect-metadata) com o Angular 2 (beta e mais recente)?
A partir do Angular 2 Alpha 54 (changelog),RxJS
não está mais incluído no Angular 2.
Atualização: Acontece quezone.js
ereflect-metadata
também são excluídos.
Como resultado, agora recebo os seguintes erros (como visto no console do desenvolvedor do 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)
eu tenhoRxJS
no meu arquivo package.json (^ 5.0.0-beta.0) e foi instalado comnpm
, mas a questão é que eu não estou familiarizado o suficiente comSystemJS
neste momento para fazer as coisas funcionarem. Aqui está a seção do corpo do meuindex.html
Arquivo:
<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>
Eu tenho brincado com outras configurações, mas nenhuma me levou até lá. Meu palpite é que isso é relativamente simples, é apenas a minha falta de compreensão ou a maneira como as ferramentas são usadas que está me impedindo.
Aqui está o meu arquivo app.ts que é oapp/app
referido na configuração do 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]);
Estou servindo o aplicativo com uma carga de fígadoExpress
servidor que usa mapeamentos estáticos para que chamadas comohttp://localhost:3000/node_modules/rxjs/Rx.js
são capazes de obter o arquivo necessário, emboraindex.html
é servido de/src
como a raiz do servidor enode_modules
é realmente no mesmo nível quesrc
e não dentro dele.
Qualquer ajuda seria, como sempre, apreciada.