Используйте Модули и Сервисы в angular в зависимости от среды (Сервис / Модуль или ничего) - PullRequest
0 голосов
/ 24 января 2020

Привет всем, у меня возникла ситуация при сборке для производства в angular, я реализовал функциональный модуль, который должен быть настроен на основе среды, и есть службы, которые должны быть предоставлены на уровне модуля root, когда я хочу использовать упомянутый функциональный модуль. Теперь я застрял с неспособностью предоставить услугу в зависимости от условий, которые я пробовал

environment.local.ts


export const environment = {
  production: false,
  baseUrl: '',
  customerName: '',
  service1 : undefined,
  service2 : undefined,
  service3 : undefined,
  isSecured: false
};

environment.prod.ts


export const environment = {
  production: true,
  baseUrl: '',
  customerName: '',
  service1 : Service1,
  service2 : Service2,
  service3 : Service3,
  isSecured: true
};

app.module.ts
/*imports all in place*/

let dynamicModules = [];

if(environment.isSecured){
  dynamicModules.push(FeatureModule);
//tried this for providers(services) in local
}

@NgModule({
  declarations: [
    AppComponent,
  ],
  imports: [
    /*other module imports*/
    ...securityModules
  ],
  providers: [
    {provide: 'Service1', useClass: environment.service1},
    {provide: 'Service2', useClass: environment.service2},
    {provide: 'Service3', useClass: environment.service3},
  bootstrap: [AppComponent],

})
export class AppModule { }

Это работало локально, когда я использовал оператор распространения, но не удалось в сборке, и поэтому я попытался предоставить услуги из файла среды.

Примечание : я видел примеры, но все, что я нашел, это упоминание услуг, предоставляемых либо в Service1, либо в Service2, я не ищу такой пример, я хочу использовать Service1 в prod, а не в local. Заранее спасибо.

...