2017-02-28 6 views
1

私はangular2に慣れていないので、systemjs.config.jsファイル内にあるすべてのオブジェクトの使用方法を知りたいと思います。例えばangular2のsystemjs.config.js

System.config({ 
    paths: { 
     // paths serve as alias 
     'npm:': 'node_modules/' 
    }, 
    // map tells the System loader where to look for things 
    map: { 
     // our app is within the app folder 
     app: 'dist', 
     main: 'main.js', 

     // angular bundles 
     '@angular/core': 'npm:@angular/core/bundles/core.umd.js', 
     '@angular/common': 'npm:@angular/common/bundles/common.umd.js', 
     '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js', 
     '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js', 
     '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', 
     '@angular/http': 'npm:@angular/http/bundles/http.umd.js', 
     '@angular/router': 'npm:@angular/router/bundles/router.umd.js', 
     '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js', 

     // other libraries 
     'rxjs': 'npm:rxjs', 
     'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js', 
     'primeng':     'npm:primeng'  
    }, 
    // packages tells the System loader how to load when no filename and/or no extension 
    packages: { 
     app: { main: 'main.js', defaultExtension: 'js' }, 
     api: { defaultExtension: 'js' }, 
     rxjs: {defaultExtension: 'js'}, 
     'node_modules/primeng': { 
      format: 'cjs', 
      defaultExtension: 'js' 
      } 
     } 

}); 

上記貼り付けコードがので、私はマップとマップのすべての内部オブジェクトの使用を知りたいと同様に、エイリアスを指定するために使用することができるパスようなオブジェクトを有していますに。 NPMパッケージが置かれている場所

答えて

3

まあ、すべての最初のあなたは、したがって、通常はrootで、言う:

paths: { 
    // paths serve as alias 
    'npm:': 'node_modules/' 
} 

はその後、あなたが、あなたが使用することになりますパッケージのエイリアス(ショートカット名を)与えますrxjsのようなこの場合、角度および一部のサードパーティ製のlibs、...

map: { 
     // our app is within the app folder 
     app: 'dist', 
     main: 'main.js', 

     // angular bundles 
     '@angular/core': 'npm:@angular/core/bundles/core.umd.js', 
     '@angular/common': 'npm:@angular/common/bundles/common.umd.js', 
     '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js', 
     '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js', 
     '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', 
     '@angular/http': 'npm:@angular/http/bundles/http.umd.js', 
     '@angular/router': 'npm:@angular/router/bundles/router.umd.js', 
     '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js', 

     // other libraries 
     'rxjs': 'npm:rxjs', 
     'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js', 
     'primeng':     'npm:primeng'  
    } 

ので、代わりのライブラリをインポートするときに、全体のパスを入力(例:「NPM:角度/コア/バンドル/ core.umd.js @ ')、あなたはそれを与えたエイリアス(' @ angular/core ')だけをインポートする必要があります。エイリアスをインポートするときは、適切なライブラリをインポートしていることを確認してください。

ライブラリのフルパスの前にある「npm:」は、上記で開始したパス「npm」を​​参照します。

+0

遅く返事を申し訳ありません、あなたはまた、systemjs.config.jsのパッケージオブジェクトの詳細を更新することができます....ありがとう –

+0

パスを変更するように?はい、できます。 – TanguyB

+0

私が尋ねようとしていたのは、その中のすべてのオブジェクトのパッケージオブジェクトと目的を詳細に説明できますか? –