微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Angular AOT编译错误“无法确定类组件的模块”

我有一个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的模板中使用.所以两者都被使用和宣布.但是当我使用“node_modules / .bin / ngc”-p tsconfig-aot.json(我在Windows 10上)时,我收到以下错误消息:
无法确定(路径到项目)/src/app/pages/private/private.component/private.component.ts中的类PrivateComponent的模块!将PrivateComponent添加到NgModule以修复它.
无法在(path-to-project)/src/app/pages/private/app.topbar.component.ts中确定AppTopBarComponent类的模块!将AppTopBarComponent添加到NgModule以修复它.我的tsconfig-aot.json文件Angular AOT build guide中的完全相同.

我实际上找到了一个解决方案.问题是PrivateComponent是在另一个文件中导入的,但没有使用,就像这样:
import { PrivateComponent } from '../private/private.component'; // not used anywhere

显然,ngc尝试链接所有内容,并被未使用的导入混淆

原文地址:https://www.jb51.cc/angularjs/141034.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐