ExtendedDefinePlugin will replace ENV variables by their configuration value. Uglify will remove dead code.
// EDIT by Jean DAT
// Custom code in order to load different configuration files based on context (targeted environment).
// In a configuration file, I store things like the API url to use, etc.
var ExtendedDefinePlugin = require('extended-define-webpack-plugin');
var optimist = require('optimist');
var argv = optimist.argv;
if (!argv.env) argv.env = process.env.IONIC_ENV;
var envParameters = require('../env/' + argv.env + '.js');
envParameters.prod = argv.env === 'prod';
envParameters.dev = argv.env === 'dev';
console.log('Using env parameters (' + argv.env + '):', JSON.stringify(envParameters, null, ' '));
// END EDIT
module.exports = {
...
plugins: [
// EDIT by Jean DAT
new ExtendedDefinePlugin({ENV: envParameters}),
// END EDIT
ionicWebpackFactory.getIonicEnvironmentPlugin()
],
...
// ./env/dev.js
module.exports = {
apiUrl: 'http://example.com/api/dev'
};
declare let ENV: any;
if(ENV.dev) console.log('## DEV ##');
...
export class Api {
url: string = ENV.apiUrl;