5

я пытаюсь ленивых нагрузки Угловое 2 модуля с маршрутизатором, и у меня эта ошибка:ИСКЛЮЧЕНИЕ: Uncaught (обещанию): Ошибка: Не удается найти модуль «приложение/дома/home.module»

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

Я пробовал все ответы, которые, кажется, работают для других, как этого, который, кажется, является решением для все лица этой проблемы, но не работает со мной Lazy loading in Angular2 RC7 and angular-cli webpack

вот мой код: приложение.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

мне удалось заставить его работать на plunker:

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

, но все еще ничего на моей машине !!!!

UPDATE

я установил новую виртуальную машину Ubuntu 16,04 и та же проблема !! это может быть что-то о версиях модулей, я имею в виду тех, кто на package.json !! как узнать, какие версии используются в плункерах? потому что это сработало там !!!

+0

Удалить HomeModule из деклараций и заменить его на HomeComponent –

+0

спасибо! я пропустил этот, но все тот же вопрос после убийства! – Zecide

+0

Не знаете, что означает этот класс DEFAULT. Попробуйте удалить значение по умолчанию. –

ответ

1

мне удалось заставить его работать, вот что я сделал:

1 - Сделайте код маршрутизации в модуле (не файл)

2 - Сделайте файл модуля в родительском каталоге компонент

3 - Удалить 'по умолчанию' в экспорте, как этот

export DEFAULT class HomeModule { }

стал

export class HomeModule { }

вы можете увидеть, что она работает с бета-24 здесь: https://github.com/mauricedb/lazy-routes

Я не знаю, что происходит !!!

3

Кажется, что у рендерера с угловым cli возникают проблемы с ленивой загрузкой, когда вы используете export default class SomeModule { } ... наряду с несколькими другими нюансами.

Это то, что я сделал, чтобы решить ту же «Ошибка: Не удается найти модуль ...» Я получал по развертыванию Heroku:

  • Source все loadChildren пути от корня приложения & включают хеш для вашего имя модуля
    • loadChildren: 'app/main/some-module/some-module.module#SomeModule'
  • Изменение export default class SomeModule { } в export class SomeModule { }
+0

Да, вы правы в определении конкретного модуля с помощью # аннотации, но есть ли там документация. Я не могу его найти. –

 Смежные вопросы

  • Нет связанных вопросов^_^