2016-04-26 16 views
1

tsconfig.jsonのoutFile: "/ app/mybundle.js"属性を指定すると、すべてのtypescriptファイルを1つのバンドルに連結できます。Angular2 TypeScriptバンドルの問題 - コンポーネントがロード/初期化されていない

このバンドルを作成する前に、以下のSystemjsコードを使用して角度成分をインポートし、問題なくアプリを初期化していました。

<script> 
     System.config({ 
      packages: { 'app': { defaultExtension: 'js' } }, 
     }); 
     System.import('app/myappp') 
      .then(null, console.error.bind(console)); 
    </script> 

しかし、私は、このバンドルを作成し、以下に私のSystemjsコードを更新する場合:私は私の画面に表示されるすべてがちょうどロードされ

<script> 
     System.config({ 
      packages: { 'app': { defaultExtension: 'js' } }, 
     }); 
     System.import('/app/mybundle') 
      .then(null, console.error.bind(console)); 
    </script> 

、コンポーネントが初期化/ロードされません。ログにはエラーがなく、バンドルファイルには404エラーはありません。

答えて

0

実際、outFile属性を使用すると、モジュールはもう匿名モジュールではありません。それらは名前で登録されているため、モジュール名を対応するファイル、つまりpackagesブロックで処理するようにマップするようにSystemJSを設定する必要はありません。モジュールファイルでoutFile属性と

System.register([ 'dep', ..., function... 

::モジュールファイルでoutFile属性、なし

System.register('modulename', [ 'dep', ..., function... 

あり最初の文字列パラメータは、モジュールの名前に対応する追加されます2番目のケースでは、 appレベルがモジュール名にはもはや存在しないこと

<script> 
    System.import('mybundle') 
     .then(null, console.error.bind(console)); 
</script> 

注:

ちょうどこれを行います。

+0

まだ成功していませんが、System.import( 'mybundle.js')を追加しない限り、ログに404が表示されます。拡張子.jsを追加すると、404エラーはなくなりますが、コンポーネントはまだロードされていません。私はをロードしています。インデックスファイル内の

+0

実際には、 'mybundle.js'ファイルを' script'要素に追加し、メインモジュールをその名前でインポートするだけです。あなたの場合: 'System.import( 'myappp') .then(null、console.error.bind(コンソール));'。このインポートは本文の末尾に追加することができます... –

+0

あなたの素早い返答をありがとう、私はスクリプトファイルを追加し、その後、私はSystem.import( 'myappp').then(null、console.error.bind (コンソール));しかし、私がブラウザでそれをリフレッシュすると、ルートディレクトリにmyappという名前のファイルを探しているのですが、なぜそれほどわかりませんか? –

関連する問題