我正在使用@ angular / cli工具进行项目和构建,并且遇到其中一个类的问题。
我正在尝试添加一个在路由访问时延迟加载的组件:
应用路线:
const routes: Routes = [
{
path: '',
redirectTo: '/dashboard',
pathMatch: 'full'
},
{
path: 'dashboard',
loadChildren: 'app/dashboard/dashboard.module'
}
];
一个加载组件和路由的模块(目前只是一个简单的组件,表示" Dashboard"):
import { NgModule, ModuleWithProviders } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import {
DashboardComponent,
DashboardRoutingModule
} from './index';
@NgModule({
imports: [DashboardRoutingModule],
declarations: [DashboardComponent]
})
export default class DashboardModule { }
当我运行ng serve
时,网页按预期启动,我可以开发/查看我正在处理的内容。
当我运行ng build
时,项目构建正常,没有任何问题。
当我运行ng build --prod --aot
时,它会返回错误和警告:
>警告在./src/$$_gendir/app/dashboard/dashboard.module.ngfactory.ts 31:38-61" export' DashboardModule' (导入为' import1')不是 在' ../../../ app / dashboard / dashboard.module'中找到 警告在./src/$$_gendir/app/dashboard/dashboard.module.ngfactory.ts 46:23-46"导出' DashboardModule' (导入为' import1')不是 在' ../../../ app / dashboard / dashboard.module'中找到 警告在./src/$$_gendir/app/dashboard/dashboard.module.ngfactory.ts 58:91-114" export' DashboardModule' (导入为' import1')不是 在' ../../../ app / dashboard / dashboard.module'中找到 C:/ wamp / www / api / data-portal / src / $$ _ gendir / app / dashboard / dashboard.module.ngfactory.ts中的错误 (1,1):命名空间'" C:/ wamp / www / api / data-portal / src / app / dashboard / dashboard.module"'没有导出的成员 ' DashboardModule' .C:/瓦帕/网络/ API /数据的门户/ SRC / $$ _ gendir /应用/仪表板/ dashboard.module.ngfactory.ts (1,1):命名空间 '" C:/wamp/www/api/data-portal/src/app/dashboard/dashboard.module"'具有 没有导出的成员' DashboardModule'。 C:/瓦帕/网络/ API /数据的门户/ SRC / $$ _ gendir /应用/仪表板/ dashboard.module.ngfactory.ts (1,1):命名空间 '" C:/wamp/www/api/data-portal/src/app/dashboard/dashboard.module"'具有 没有导出的成员' DashboardModule'。
如果我从信息中心模块的导出中删除关键字default
,那么它的构建没有任何问题,但是应用程序无法正常工作,因为它无法找到default
但是,如果我再次添加默认值,则会破坏生产构建。
关于我做错的任何想法/想法?我很困惑,因为ng serve
有效且ng build
适用于default
关键字,但ng build --prod --aot
不适用
答案 0 :(得分:1)
我设法通过改变路由的方式来解决这个问题。
而不是:
{
path: 'dashboard',
loadChildren: 'app/dashboard/dashboard.module'
}
我用过:
{
path: 'dashboard',
loadChildren: 'app/dashboard/dashboard.module#DashboardModule'
}
无需在仪表板模块中使用默认设置 - 如果有人遇到与我相同的问题,则可以完美运行。