J'essaie de charger paresseux Angular 2 modules avec le routeur, et j'ai l'erreur suivante:
error_handler.js: 50 EXCEPTION: Uncaught (promis): Erreur: Impossible de trouver le module 'app/home/home.module'
J'ai essayé toutes les réponses qui semblent fonctionner pour les autres, comme celle-ci qui semble être une solution pour tout le monde confronté à ce problème, mais ne fonctionne pas avec moi Chargement paresseux dans Angular2 RC7 et angular-cli webpack
voici mon code: app.module
import { MediatorService } from './home/mediator.service';
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 appRoutes from "./app.routes";
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
appRoutes
],
providers: [MediatorService],
bootstrap: [AppComponent]
})
export class AppModule { }
app.routes
import { RouterModule } from '@angular/router';
const routes = [
{path : '', loadChildren: './home/home.module#HomeModule'},
{path: 'devis', loadChildren: './forms/forms.module#FormsModule'}
];
export default RouterModule.forRoot(routes);
home.module
import {NgModule} from "@angular/core";
import {CommonModule} from "@angular/common";
import homeRoutes from "./home.routes";
@NgModule({
imports:[CommonModule, homeRoutes],
declarations: [HomeComponent]
})
export default class HomeModule{}
home.routes
import {RouterModule} from "@angular/router";
import {HomeComponent} from "./home.component";
const routes = [
{path: '', component: HomeComponent}
];
export default RouterModule.forChild(routes);
Package.json
{
"name": "insurance",
"version": "0.0.0",
"license": "MIT",
"angular-cli": {},
"scripts": {
"ng": "ng",
"start": "ng serve",
"lint": "tslint \"src/**/*.ts\"",
"test": "ng test",
"pree2e": "webdriver-manager update --standalone false --gecko false",
"e2e": "protractor"
},
"private": true,
"dependencies": {
"@angular/common": "^2.3.1",
"@angular/compiler": "^2.3.1",
"@angular/core": "^2.3.1",
"@angular/forms": "^2.3.1",
"@angular/http": "^2.3.1",
"@angular/platform-browser": "^2.3.1",
"@angular/platform-browser-dynamic": "^2.3.1",
"@angular/router": "^3.3.1",
"bootstrap": "^4.0.0-alpha.5",
"core-js": "^2.4.1",
"font-awesome": "^4.7.0",
"rxjs": "^5.0.1",
"ts-helpers": "^1.1.1",
"zone.js": "^0.7.2"
},
"devDependencies": {
"@angular/compiler-cli": "^2.3.1",
"@types/jasmine": "2.5.38",
"@types/jquery": "^2.0.34",
"@types/node": "^6.0.42",
"angular-cli": "1.0.0-beta.24",
"codelyzer": "~2.0.0-beta.1",
"jasmine-core": "2.5.2",
"jasmine-spec-reporter": "2.5.0",
"karma": "1.2.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-jasmine": "^1.0.2",
"karma-remap-istanbul": "^0.2.1",
"protractor": "~4.0.13",
"ts-node": "1.2.1",
"tslint": "^4.0.2",
"TypeScript": "~2.0.3"
}
}
METTRE À JOUR
J'ai réussi à le faire fonctionner sur Plunker:
https://plnkr.co/edit/uLxmxDIeCdDzxbFjYQS7?p=preview
mais toujours rien sur ma machine !!!!
METTRE À JOUR
J'ai installé une nouvelle machine virtuelle Ubuntu 16.04 Et le même problème !! Cela pourrait-il être quelque chose à propos des versions de modules, je veux dire celles de package.json !! Comment savoir quelles sont les versions utilisées dans Plunker? parce que cela a fonctionné là !!!
J'ai réussi à le faire fonctionner, voici ce que j'ai fait:
1 - Créez le code de routage dans le module (pas un fichier)
2 - Créez le fichier de module dans le répertoire parent du composant
3 - Supprimer le 'défaut' dans l'exportation comme ceci
export DEFAULT class HomeModule { }
est devenu
export class HomeModule { }
vous pouvez voir que cela fonctionne avec la beta 24 ici: https://github.com/mauricedb/lazy-routes
Je ne sais pas ce qui se passe !!!
J'ai atterri sur cette question avec des symptômes et un contexte très similaires, il semble donc utile de remarquer que cette réponse à une autre question m'a aidé.
Dans mon cas particulier, je suivais un peu les modules de fonctionnalité paresseux docs , et j'ai même essayé de répliquer fidèlement l'exemple StackBlitz associé code. Pour une raison quelconque, cet exemple s'en tire avec:
loadChildren: 'app/customers/customers.module#CustomersModule'
Et même si mon expérience basée sur la CLI angulaire (v6) avait une structure de dossier similaire, je devais faire ceci:
// Full path including `src` at the start:
loadChildren: 'src/app/customers/customers.module#CustomersModule'
ou ca:
// Relative path from the `app-routing.module.ts` file:
loadChildren: './customers/customers.module#CustomersModule'
On ne sait pas pourquoi l'exemple StackBlitz s'en tire avec le premier exemple de code, mais les deux autres sont tout à fait sensés et fonctionnent pour moi lorsque je fais ng serve
.
Il semble que le moteur de rendu angular-cli rencontre des problèmes de chargement paresseux lorsque vous utilisez export default class SomeModule { }
... ainsi que quelques autres nuances.
C’est ce que j’ai fait pour résoudre le même problème "Erreur: module introuvable ..." lors du déploiement de Heroku:
loadChildren: 'app/main/some-module/some-module.module#SomeModule'
export default class SomeModule { }
par export class SomeModule { }
Aussi bête que cela puisse paraître, sur Angular 6.
J'utilisais cette commande ng build --aot --watch
lors du développement de mon application. En entrant dans la zone, j’ai sauvegardé beaucoup de fichiers (copier/coller depuis d’autres projets). La construction a fonctionné mais ne montrait pas les erreurs mais le navigateur a montré cette erreur.
J'ai fermé la construction, et l'ai reconstruite à nouveau et toutes les erreurs (sans rapport avec ce qui précède) qui n'étaient pas affichées sont apparues !!.
CLI angulaire: 6.1.5 Node: 8.11.3 OS: win32 x64
loadChildren: './customers/customers.module#CustomersModule' fonctionne pour moi, mais je devais redémarrer le serveur.