5

Próbuję leniwy obciążenia kątowe 2 modułów z routerem, i mam ten błąd:WYJĄTEK: Uncaught (obietnicy): Błąd: Nie można odnaleźć modułu aplikacji „/ home/home.module”

error_handler.js:50 EXCEPTION: Uncaught (in promise): Error: Cannot find module 'app/home/home.module'

próbowałem wszystkie odpowiedzi, które wydaje się działać dla innych, jak ten, który wydaje się być rozwiązaniem dla wszystkich, w obliczu tego problemu, ale nie działa u mnie Lazy loading in Angular2 RC7 and angular-cli webpack

tutaj jest mój kod: 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" 
    } 
} 

UPDATE

udało mi się zrobić to praca na plunker:

https://plnkr.co/edit/uLxmxDIeCdDzxbFjYQS7?p=preview

ale nadal nic na moim komputerze !!!!

UPDATE

zainstalowałem nową maszynę wirtualną ubuntu 16.04 i ten sam problem !! może to być coś w wersjach modułów, mam na myśli te na package.json !! jak się dowiedzieć, jakie są wersje używane w plunker? bo działało tam !!!

+0

Usuń HomeModule z deklaracji i zastąp go HomeComponent –

+0

dziękuję! tęskniłem za tym, ale wciąż ten sam problem po zabiciu ng służyć !!! – Zecide

+0

Nie jestem pewien, co oznacza ta klasa eksportu DEFAULT. Spróbuj usunąć domyślne. –

Odpowiedz

1

udało mi się zrobić to praca, oto co zrobiłem:

1 - Make kod routingu w module (nie pliku)

2 - Make plik modułu w katalogu nadrzędnego składnik

3 - Usuń 'default' w eksporcie jak ten

export DEFAULT class HomeModule { }

stał

export class HomeModule { }

widać, że działa z wersji beta 24 tutaj: https://github.com/mauricedb/lazy-routes

Nie wiem, co się dzieje !!!

3

Wygląda na to, że renderektor kątowy ma problemy z leniwym ładowaniem podczas korzystania z export default class SomeModule { } ... wraz z kilkoma innymi niuansami.

To, co zrobiłem, aby rozwiązać ten sam „błąd: Nie można odnaleźć modułu ...” ja trafiałem na Heroku Wdrożenie:

  • Źródło wszystkie loadChildren ścieżki od korzenia app & obejmują hash dla Twojego Nazwa modułu
    • loadChildren: 'app/main/some-module/some-module.module#SomeModule'
  • Zmień export default class SomeModule { } do export class SomeModule { }
+0

Tak, masz rację określając konkretny moduł przy użyciu # adnotacji, ale czy jest tam dokumentacja, której nie mogę znaleźć –