2016-07-19 12 views
4

SystemJSを使用してこのsystem.config.jsファイルを使用して、npmから私のAngular 2コンポーネントにダウンロードしたばかりの新しいパッケージを追加する方法。コードは、私のためにスターターパッケージで作成されました。 私はこのファイルのマップセクションとパッケージセクションにモジュールへのリンクを張そうとしましたが、動作していないようです。私が知りたいのは、私のnode_modulesにあるアンダースコアjsなどのライブラリを取って、このファイルに入力すれば、私のtypescript角度コンポーネントでファイルを簡単にインポートできることです。あなたは、NPMを使用してライブラリをインストールし、SystemJS構成以内にそれを設定する必要がSystemJs設定ファイルにモジュールを追加する方法

<script src="node_modules/core-js/client/shim.min.js"></script> 
<script src="node_modules/zone.js/dist/zone.js"></script> 
<script src="node_modules/reflect-metadata/Reflect.js"></script> 
<script src="node_modules/systemjs/dist/system.src.js"></script> 

<script src="systemjs.config.js"></script> <----- 

<script> 
    System.import('app').catch(function(err){ console.error(err); }); 
</script> 

編集

var isPublic = typeof window != "undefined"; 

(function(global) { 
    var map = { 
     'app':      'client', // 'dist', 
     '@angular':     (isPublic)? '@angular' : 'node_modules/@angular', 
     '@angular/router':   (isPublic)? '@angular/router' : 'node_modules/@angular/router', 
     'angular2-in-memory-web-api': (isPublic)? 'angular2-in-memory-web-api' : 'node_modules/angular2-in-memory-web-api', 
     'rxjs':      (isPublic)? 'rxjs' : 'node_modules/rxjs', 
     'ng-semantic':    (isPublic)? 'ng-semantic' : 'node_modules/ng-semantic' 
    }; 
    // packages tells the System loader how to load when no filename and/or no extension 
    var packages = { 
     'app':      { main: 'main.js', defaultExtension: 'js' }, 
     'rxjs':      { defaultExtension: 'js' }, 
     'ng2-ace':      { defaultExtension: 'js' }, 
     'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' }, 
     'ng-semantic':    { main: 'ng-semantic', defaultExtension: 'js' } 
    }; 
    var ngPackageNames = [ 
     'common', 
     'compiler', 
     'core', 
     'http', 
     'forms', 
     'platform-browser', 
     'platform-browser-dynamic', 
     'router-deprecated', 
     'upgrade', 
     'ng2-ace' 
    ]; 
    // Individual files (~300 requests):x 
    function packIndex(pkgName) { 
     packages['@angular/'+pkgName] = { main: 'index.js', defaultExtension: 'js' }; 
    } 
    // Bundled (~40 requests): 
    function packUmd(pkgName) { 
     packages['@angular/'+pkgName] = { main: '/bundles/' + pkgName + '.umd.js', defaultExtension: 'js' }; 
    } 

    packages['@angular/router'] = { main: 'index.js', defaultExtension: 'js' }; 


    var setPackageConfig = System.packageWithIndex ? packIndex : packUmd; 
    // Add package entries for angular packages 
    ngPackageNames.forEach(setPackageConfig); 
    var config = { 
     map: map, 
     packages: packages 
    }; 
    System.config(config); 
})(this); 

答えて

3

はちょうどあなたのメインのHTMLファイル(index.html)にこのファイルを含めます:

System.config({ 
    (...) 
    map: { 
    underscore: 'node_modules/underscore/underscore.js' 
    } 
}); 

(Lodash用似ているが)、この質問を参照してください:Importing lodash into app.ts file

  • は下線ライブラリのタイピングをインストールすることを忘れないでください。

+0

systemjs.config.jsが既にindex.htmlファイルに含まれているので、アンダースコアjsをsystem.js.configファイル – BathgateIO

+0

に追加する方法を知りたいのですか、アンダースコアを私のインデックスに追加するべきですか? htmlファイルですか? – BathgateIO

+0

申し訳ありません。私はあなたの質問を正しく理解していませんでした。私はそれに応じて私の答えを更新... –

関連する問題