Poniższy kod może warunkowo załadować fałszywą usługę opartą na różnych zmiennych środowiskowych Angular-cli. Jednak efekt uboczny polega na tym, że fałszywe usługi są wbudowane w końcowe transkodowane i zminimalizowane pliki wyjściowe.Sposób ładowania modułów warunkowo w Angular 2
Czy istnieje lepszy sposób na wykonanie leniwych modułów ładujących w angular2?
app.module.ts:
import {BrowserModule} from "@angular/platform-browser";
import {NgModule} from "@angular/core";
import {FormsModule} from "@angular/forms";
import {HttpModule} from "@angular/http";
import {AppComponent} from "./app.component";
import {environment} from "../environments/environment";
import {XService} from "./xxx.service";
import {XMockService} from "./xxx-mock.service";
let importedModules: Array<any> = [
XService
];
if (environment.mock) {
importedModules.push(
{provide: XService, useClass: XMockService}
);
} else {
importedModules.push(
XService
);
}
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: importedModules,
bootstrap: [AppComponent]
})
export class AppModule {}
leniwy ładunek https://angular.io/guide/ngmodule#app-routing use loadChildren: 'app/path/to/YourModuleFileName # YourModuleClassName iw tym module możesz importować inne moduły do leniwego ładowania ich ... ale w/import zakończysz pobieranie XService i XMockService. Szukam sposobu, aby pobrać tylko te moduły, które są potrzebne w czasie ładowania początkowego na podstawie hosta przy użyciu jednej podstawy kodu. hmm –