J'utilise une compilation cli AoT angulaire . Lorsque j'essaie de créer un composant de chargement paresseux après ce didacticiel , le message d'erreur ci-dessous s'affiche:
ERROR Error: Uncaught (in promise): TypeError: __webpack_require__.e is not a function
TypeError: __webpack_require__.e is not a function
at webpackAsyncContext (eval at ./src/$$_lazy_route_resource lazy recursive (main.bundle.js:13), <anonymous>:15:29)
at SystemJsNgModuleLoader.loadAndCompile (core.js:6554)
at SystemJsNgModuleLoader.load (core.js:6538)
at RouterConfigLoader.loadModuleFactory (router.js:4543)
at RouterConfigLoader.load (router.js:4523)
at MergeMapSubscriber.eval [as project] (router.js:2015)
at MergeMapSubscriber._tryNext (mergeMap.js:128)
at MergeMapSubscriber._next (mergeMap.js:118)
at MergeMapSubscriber.Subscriber.next (Subscriber.js:92)
at ScalarObservable._subscribe (ScalarObservable.js:51)
at webpackAsyncContext (eval at ./src/$$_lazy_route_resource lazy recursive (main.bundle.js:13), <anonymous>:15:29)
at SystemJsNgModuleLoader.loadAndCompile (core.js:6554)
at SystemJsNgModuleLoader.load (core.js:6538)
at RouterConfigLoader.loadModuleFactory (router.js:4543)
at RouterConfigLoader.load (router.js:4523)
at MergeMapSubscriber.eval [as project] (router.js:2015)
at MergeMapSubscriber._tryNext (mergeMap.js:128)
at MergeMapSubscriber._next (mergeMap.js:118)
at MergeMapSubscriber.Subscriber.next (Subscriber.js:92)
at ScalarObservable._subscribe (ScalarObservable.js:51)
at resolvePromise (zone.js:809)
at resolvePromise (zone.js:775)
at eval (zone.js:858)
at ZoneDelegate.invokeTask (zone.js:421)
at Object.onInvokeTask (core.js:4736)
at ZoneDelegate.invokeTask (zone.js:420)
at Zone.runTask (zone.js:188)
at drainMicroTaskQueue (zone.js:595)
at ZoneTask.invokeTask [as invoke] (zone.js:500)
at invokeTask (zone.js:1517)
Voici une partie de mes codes:
app-routing.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule, Routes } from '@angular/router';
const routes: Routes = [
{ path: 'listes', loadChildren: 'app/component/list/list.module#ListModule'}
];
@NgModule({
imports: [
RouterModule.forRoot(routes)
],
declarations: [],
exports: [ RouterModule ]
})
export class AppRoutingModule { }
list-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ListComponent } from './list.component';
const routes: Routes = [] = [
{ path: '', component: ListComponent }
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class ListRoutingModule { }
list.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ListRoutingModule } from './list-routing.module';
import { ListComponent } from './list.component';
@NgModule({
imports: [
CommonModule,
ListRoutingModule
],
declarations: [ ListComponent ]
})
export class ListModule { }
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { HeaderComponent } from './component/header/header.component';
import { FooterComponent } from './component/footer/footer.component';
import { AppRoutingModule } from './app-routing.module';
import { DetailModule } from './component/detail/detail.module';
import { HomeComponent } from './component/home/home.component';
@NgModule({
declarations: [
AppComponent,
HeaderComponent,
FooterComponent,
HomeComponent
],
imports: [
BrowserModule,
AppRoutingModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {}
Je le signale déjà comme un problème Angular-cli. Vous pouvez le trouver ici .
Y at-il quelqu'un qui a connu le même problème et qui a trouvé une solution à ce problème?
Bug lié: Angular 5 avec modules de chargement cli non anguleux dans le routeur (Pas encore résolu).
Solution proposée: https://github.com/gdi2290/angular-starter/issues/1936 :
{ path: 'listes', loadChildren: () => ListModule } // it doesn't do lazy loading
Une information important:
Angular cli: 1.7.0
Angular: 5.2.0
Mes salutations
J'ai cloné et reproduit le problème en utilisant votre code GitHub posté. Pour résoudre ce problème, vos packages @ angular/cli global et devDependencies doivent être à 1.7.2.
npm remove -g @angular/cli
npm install -g @angular/[email protected]
npm remove @angular/cli
npm add @angular/[email protected] --save-dev
Le package @ angular/cli de votre devDependencies correspond maintenant à la version globale. Il est défini sur 1.7.2 et le problème est résolu.
J'ai le même problème. Je le résous Il suffit d’arrêter le serveur Cli et de le démarrer. L'erreur est partie si vous avez fait votre code correctement.
Il y a un bogue ouvert sur angular-cli 1.7.x: https://github.com/angular/angular-cli/issues/9488#issuecomment-368871510
Déclassement à 1.6.8 résout le problème pour moi.
J'ai le même problème.fixez-le en utilisant
{path:'listes' ,loadChildren: ()=>ListModule} not {path:'listes' ,loadChildren: 'app/component/list/list.module#ListModule'}
S'il vous plaît voir ce commentaire sur le bogue 1.7.x. Le problème semble importer le module chargé paresseux dans AppModule. Supprimer cette importation a résolu le problème pour moi: https://github.com/angular/angular-cli/issues/9488#issuecomment-374037802
Selon moi, le problème est que vous pouvez être paresseux lors du chargement de plusieurs modules sur les mêmes itinéraires dans le même fichier de routage. J'ai également rencontré le même problème et j'ai changé le nom de l'un des itinéraires.