2016-05-28 4 views
1

私はAngular 2アプリを構築し、SystemJS/JSPMでバンドルしています。開発中にAngular 2 TypeScript:JSPMとバンドルするときのenableProdMode

私はindex.htmlでアプリをインポートします。

<script src="jspm_packages/system.js"></script> 
<script src="systemjs.config.js"></script> 
<script src="systemjs.importapp.js"></script> 

私がバンドル:

jspm bundle-sfx app assets/js/myapp.sfx.min.js --minify --no-mangle --skip-source-maps 

そして、上記の3つを交換

<script src="assets/js/myapp.sfx.min.js" defer></script> 

index.htmlのバージョンを持っています。

マイmain.ts出発点は、次のようになります。私がやりたい何

// CORE IMPORTS 
import 'es6-shim'; 
import 'reflect-metadata'; 
import 'zone.js'; 
import 'zone.js/dist/zone'; 
import 'zone.js/dist/long-stack-trace-zone'; 
import 'rxjs'; 

// ADD ALL OPERATORS TO OBSERVABLES 
import 'rxjs/Rx'; 

// APP INITIALISATION 
import {bootstrap} from 'angular2/platform/browser'; 
import {enableProdMode} from 'angular2/core'; 
import {AppComponent} from './app.component'; 
import {ROUTER_PROVIDERS} from 'angular2/router'; 

bootstrap(AppComponent, [ 
    ROUTER_PROVIDERS 
]); 

私はjspm bundle-sfxにバンドルしていた場合にのみ、コールenableProdMode()です。

この問題を解決するにはどうすればよいでしょうか?

答えて

0

これには1つの解決策があります。たとえば、外部JSONファイルを作成します。 environment.jsonは、私のアプリのmain.tsエントリポイントと同じディレクトリに、含有すること:main.tsで次に

{ 
    'env': 'dev' 
} 

import _environment from './environment.json!json'; 

if (_environment.env === 'dev') { 
    console.log('Running in dev mode.') 
} 

if (_environment.env === 'prod') { 
    console.log('Running in production mode.'); 
    enableProdMode(); 
} 

これは、インストールするSystemJS JSONプラグインが必要です

jspm install json 

その後、ビルドスクリプトでは、バンドルをビルドする直前にenvprodに変更し、bac kからdevまで、jqを使用してください。

関連する問題