我正在构建一个Angular 2应用程序并将其与SystemJS / JSPM捆绑在一起。
在开发过程中,我在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
并且版本为index.html
<script src="assets/js/myapp.sfx.min.js" defer></script>
取代上述三项。
我的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
]);
我想要做的只是在我与enableProdMode()
捆绑时才拨打jspm bundle-sfx
。
最好的方法是什么?
答案 0 :(得分:0)
我找到了一个解决方案:创建一个外部JSON文件,例如: environment.json
,与我的应用的main.ts
入口点位于同一目录中,其中包含:
{
'env': 'dev'
}
然后在main.ts
:
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
然后,在我的构建脚本中,我在构建捆绑包之前将env
更改为prod
,之后使用jq返回dev
。