Угловой 6 Не найдено метаданных NgModule для 'myModule' - PullRequest
0 голосов
/ 23 мая 2018

Это похоже на проблему с моей 'ленивой загрузкой'

Когда я пытаюсь использовать ng serve, я получаю эту ошибку:

ERROR in No NgModule metadata found for 'ModuleA'.

И компиляция ждет.Затем, если я редактирую и сохраняю файл modulea.module.ts, он работает.Но этот трюк не работает с ng build (теперь есть режим 'watch'). Надеюсь, вы понимаете, о чем я говорю: D

Так как я могу это исправить?

Структура моих папок:

src/
  app/
    views/
       moduleA/
         componenets/
         modulea.module.ts
         modulea-routing.module.ts
       moduleB/
         componenets/
         moduleb.module.ts
         moduleb-routing.module.ts
    ... app components etc
    app.module.ts
    app.routing.ts

Маршрутизация моего приложения

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

export const routes: Routes = [
  {
     path: 'modulea',
     children: [
       {
        path: '',
        loadChildren: './views/moduleA/modulea.module#ModuleAModule'
      },
    ]
  },
  {
     path: 'moduleb',
     children: [
       {
        path: '',
        loadChildren: './views/moduleB/moduleb.module#ModuleBModule'
      },
    ]
  },
];

Модуль A:

import { NgModule } from '@angular/core';

import { ModuleARouting } from './modulea-routing.module';

@NgModule({
  imports: [
    ModuleARouting
  ],
})
export class ModuleAModule { }

Модуль B:

import { NgModule } from '@angular/core';

import { ModuleBRouting } from './moduleb-routing.module';

@NgModule({
  imports: [
    ModuleBRouting
  ],
})
export class ModuleBModule { }

МодульФайлы маршрутизации A и B загружают другой модуль:

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

const routes: Routes = [
  {
    path: '',
    data: {
      title: 'ModuleA'
    },
    children: [
      {
        path: '',
        redirectTo: 'module-a-a'
      },
      {
        path: 'module-a-a',
        loadChildren: './components/module-a-a.module#ModuleAAModule'
      },
    ]
  }
];

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

И, наконец, ModuleAA загружает компоненты

EDIT Я могу редактировать любой файл (когда компиляция не выполняется и ожидает), чтобыпередать это сделано.

1 Ответ

0 голосов
/ 21 июля 2018

У меня была такая же проблема и была и ошибка в имени модуля.Поэтому проверьте все имена, имена маршрутизации, имена компонентов и имена модулей модуля на наличие ошибки.

...