Ленивая загрузка угловых модулей с маршрутизатором: ошибка не может найти модуль - PullRequest
0 голосов
/ 11 мая 2018

Эй, у меня очень странная проблема, с которой я раньше не сталкивался при настройке угловой маршрутизации, когда при попытке ленивой загрузки другого модуля я получаю эту ошибку Error: Cannot find module "app/feed/feed.module"

Для начала вот мои настройки

  • @ angular / cli: 6.0.1
  • @ угловой / сердечник: 6.0.0
  • @ угловой / материал: 6.0.1
  • нпм: 6,0,1
  • узел: 10.1.0

Также следует отметить, что я только что сгенерировал новый угловой проект после обновления всех моих глобальных пакетов npm, так что то, что в списке, было обновлено до того, как я запустил ng new app-name

Вот мой app-routing.module:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

const rootRoutes: Routes = [
  { path: '', redirectTo: 'feed', pathMatch: 'full' },
  { path: 'feed', loadChildren: 'app/feed/feed.module#FeedModule' }
];

@NgModule({
  imports: [RouterModule.forRoot(rootRoutes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

Тогда в моем app.module я импортирую этот модуль выше:

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    AppRoutingModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})

А вот и feed-routing.module:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { FeedComponent } from './feed.component';
import { CreatePostComponent } from './create-post/create-post.component';

export const feedRoutes: Routes = [
  {
    path: '',
    component: FeedComponent,
    children: [
      { path: 'create', component: CreatePostComponent }
    ]
  }
];

@NgModule({
  imports: [RouterModule.forChild(feedRoutes)],
  exports: [RouterModule]
})
export class FeedRoutingModule { }

И так же, как в app.module, я импортирую этот модуль в мой feed.module:

@NgModule({
  imports: [
    CommonModule,
    FeedRoutingModule
  ],
  declarations: [
    FeedComponent,
    CreatePostComponent
  ]
})

Вот небольшое изображение моего проводника в VSCode, чтобы проверить, правильно ли установлены модули:

enter image description here

Я использовал этот метод снова и снова и никогда не видел этой ошибки о том, что мой второй модуль не найден, и задаюсь вопросом, имеет ли он какое-либо отношение к обновленным пакетам Angular 6. Любая помощь очень ценится, так как я хотел бы лениво загрузить различные модули в этом проекте. Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

Для меня предложенное решение с относительными путями не сработало.

Если у кого-то еще есть проблема с этим, попробуйте мое решение здесь, где вы используете абсолютные пути и добавляете ленивые модули в lazyModules в вашем угловом модуле.Конфигурационный файл .json:

Угловая 5 отложенной загрузки Ошибка: не удается найти модуль

0 голосов
/ 26 июня 2018

Для тех, кто не может получить представление о ответе из приведенных выше комментариев, используйте приведенный ниже синтаксис, как указано в @ penleychan

В соответствии с документацией , вы в конечном итоге получитенаписав что-то вроде этого

const rootRoutes: Routes = [
  { path: '', redirectTo: 'feed', pathMatch: 'full' },
  { path: 'feed', loadChildren: 'app/feed/feed.module#FeedModule' }
];

, измените его на

const rootRoutes: Routes = [
  { path: '', redirectTo: 'feed', pathMatch: 'full' },
  { path: 'feed', loadChildren: './feed/feed.module#FeedModule' }
];

Обратите внимание на изменение свойства loadChildren в обоих примерах кода.Если вы не создали свое приложение с помощью ng-cli, убедитесь, что путь loadChildren относительно app-routing.module.ts file

...