main.ts ------- loadEnvironment(environment.environmentUrl) .then(env => { if (env.production) { enableProdMode(); } bootstrap(); }); load-environment.ts ------------------- export function loadEnvironment(url: string): Promise<any> { return fetch(url) .then(response => response.json()) .then(env => { window['__env__'] = env; return env; }); } environment-factory.ts ---------------------- export function getEnvironmentFactory(): any { return window['__env__']; } environment.module.ts --------------------- export const ENVIRONMENT_CONFIG = new InjectionToken('environmentConfig'); @NgModule({ providers: [ { provide: ENVIRONMENT_CONFIG, useFactory: getEnvironmentFactory } ] }) export class EnvironmentModule { }