なぜ次のTypeScriptコードはコンパイルされますが、実行時にシステムが依存関係を正しくロードできないのはなぜですか?rxjs/Observableを構築する際のエラー
import { Observable } from 'rxjs';
let temp123 = new Observable<String>();
しかし、これは動作します。具体的
import { Observable } from 'rxjs/Observable';
let temp123 = new Observable<String>();
、コード含ま.jsファイル内の最初のコードの結果:
var Observable_1 = require('rxjs');
var temp123 = new Observable_1.Observable();
が、第2のコードは、この生成した:
var Observable_1 = require('rxjs/Observable');
var temp123 = new Observable_1.Observable();
l ine require( 'rxjs')はファイルが存在しないため404エラーで失敗します。 typescriptコンパイラがこれを解決できるのはなぜですか?しかし、システムjは実行時にそれをロードできません。
また注目に値する:この問題はObservableで特定のことを行う場合にのみ発生します。たとえば、次のコードは動作します:
import { Observable } from 'rxjs';
let temp123: Observable<String> = null;
let xyz = temp123.first();
私はに観測を使用し、その上にメソッドを呼び出すことができ、活字体コンパイラなし必要(「rxjs」)を生成しました。しかし、私はそれを構築することはできませんし、私はそれを拡張することはできません。
バージョン:2.0.3活字体、Systemjs 0.19.27、5.0.0-beta.12をrxjs
私のsystemjs.configについては正しいですか。そしてあなたの修正プログラムは動作します。 systemjs.package.configにaddin 'main'を追加した方がimport文を変更する方が良いか悪いと思いますか?驚くほど詳細な答えは、BTW。 –
'main'を追加すると、systemjs builderを使ってアプリケーションをパッケージ化するとき(そしてif)作業を続けるチャンスが増えたと思いますが、自分自身でrxjsを使っていないので間違っている可能性があります。もしあれば、rxjsの作者の意見を知ることは興味深いでしょう。 – artem
@artem。私はしばらくの間、 "rxjs/Observable"からのインポートを "rxjs" vs 'importから" import "することについて不思議でした。非常に明確な説明に感謝します。 – AngularChef