30 votes

Erreur de chargement différé Angular 5: $$ _ lazy_route_resource lazy récursif

Je suis angulaire à l'aide de la cli AoT compilation. Quand j'essaie de faire un paresseux charger le composant suivant ce tutoriel, j'ai obtenu l'erreur ci-dessous:

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 la partie de mon code:

app-routage.le 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 { }

liste de routage.le 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 { }

liste.le 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.le 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 l'ai déjà signaler comme un Angulaires-cli Question. Vous pouvez le trouver ici.

Quelqu'un est-il connu le même problème et trouvé une solution pour cela?

Problème: Angulaire 5 Angulaire de la cli de non-chargement différé des modules dans le routeur (Pas encore résolus).

La solution proposée: https://github.com/gdi2290/angular-starter/issues/1936:

{ path: 'listes', loadChildren: () => ListModule }
// it doesn't do lazy loading

Informations importantes:

Angular cli: 1.7.0
Angular: 5.2.0

Mes salutations

59voto

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 a disparu si vous avez correctement fait votre code.

32voto

coderroggie Points 662

J'ai cloné et reproduit le problème en utilisant votre code GitHub publié. Pour résoudre ce problème, vos packages @ angular / cli global et devDependencies doivent être à la version 1.7.2

 npm remove -g @angular/cli
npm install -g @angular/cli@1.7.2
npm remove @angular/cli
npm add @angular/cli@1.7.2 --save-dev
 

Maintenant, le package @ angular / cli dans vos devDependencies correspond à la version globale et il est défini sur 1.7.2 où ce problème est résolu.

12voto

Jor Jule Points 111

J'ai le même problème. Corrigez-le en utilisant

  {path:'listes' ,loadChildren: ()=>ListModule} not {path:'listes' ,loadChildren: 'app/component/list/list.module#ListModule'}
 

11voto

glucas Points 139

Il existe un bogue ouvert sur angular-cli 1.7.x : https://github.com/angular/angular-cli/issues/9488#issuecomment-368871510

La rétrogradation vers 1.6.8 résout le problème pour moi.

5voto

leachryanb Points 151

Veuillez voir ce commentaire sur le bogue 1.7.x. Le problème semble importer le module chargé paresseusement dans l'AppModule. La suppression de cette importation a résolu le problème pour moi: https://github.com/angular/angular-cli/issues/9488#issuecomment-374037802

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X