У меня есть приложение Angular (4.3.2), в котором я хочу выполнить сборку AOT. Приложение было создано с использованием @angular/cli
. У меня есть два компонента с поддержкой ng generate
и модуль, в который оба включены как объявление:
import {PrivateComponent} from './private.component/private.component';
NgModule({
imports: [
// other imports
PrivateRoutingModule
],
declarations: [
...some other components,
PrivateComponent,
AppTopBarComponent
]
// other stuff
})
export class PrivateModule {}
Закрытый компонент также используется в модуле маршрутизации:
const routes: Routes = [
{path: '', component: PrivateComponent, children: // other components}
]
@NgModule({
imports: [RouterModule.forChild(routes)] // this is the Angular built-in router module
})
export class PrivateRoutingModule {}
Обратите внимание, как маршрутизация была определена в другом модуле и импортирована в PrivateModule
. AppTopBarComponent
используется внутри шаблона PrivateComponent's
. Так что оба используются и заявлены. Но когда я использую "node_modules/.bin/ngc" -p tsconfig-aot.json
(я на Windows 10), я получаю это сообщение об ошибке: Cannot determine the module for class PrivateComponent in (path-to-project)/src/app/pages/private/private.component/private.component.ts! Add PrivateComponent to the NgModule to fix it.
Cannot determine the module for class PrivateComponent in (path-to-project)/src/app/pages/private/private.component/private.component.ts! Add PrivateComponent to the NgModule to fix it.
Cannot determine the module for class AppTopBarComponent in (path-to-project)/src/app/pages/private/app.topbar.component.ts! Add AppTopBarComponent to the NgModule to fix it.
, Мой tsconfig-aot.json
точно такой же, как и в руководстве по сборке Angular AOT.