2017-05-23 21 views
0

コーディングにはtypescriptを使用し、モジュールをロードするにはSystemJSを使用するAngular 2 appがあります。SystemJS:ファイル間の依存関係を追加する方法は?

//sydtemjs.config.js 
(function (global) { 
    System.config({ 
     map: { 
     'normalizr': 'node_modules/normalizr/dist/src/index.js' //mapping normalizr library 
     }, 
     packages: { 
      normalizr: { 
       defaultExtension: 'js' 
      } 
     } 

index.jsが正常にロードされますが、それは依存関係が含まれています

//node_modules/normalizr/dist/src/index.js 
var _Entity = require('./schemas/Entity'); 
var _Array = require('./schemas/Array'); 
//etc 

ブラウザは(JS拡張子なし)BASE_PATH/node_modules/normalizr/DIST/SRC /スキーマ/アレイへの要求を行い、サーバーが404を返します。

内部モジュールにjs拡張子を付けるようにsystemjsを設定するにはどうすればよいですか?なぜdefaultExtensionはそれを解決しないのですか?

答えて

0

packages部分を削除して、代わりにdefaultJSExtensionsをグローバルに使用しましたか?このような

何か:

{ 
    defaultJSExtensions: true, 
    map: { 
    'normalizr': 'node_modules/normalizr/dist/src/index 
    } 
} 
0

私は、このプロパティはsystemjsの新しいバージョンでは廃止されているようdefaultJSExtensionsを使用するソリューションを避けるだろう。

normalizerのすべての依存関係をマップする必要があります。そうでないと、systemjsにはロード方法の概念がありません。

このシナリオでは、jspmを使用して自動的に設定を作成する方がよい場合があります。

+0

jspm(0.16.53)の最新のメインバージョンでは、defaultJSExtensionsを使用するconfig.jsが生成されます。 – Amid

関連する問題