默认类

时间:2017-04-07 04:00:13

标签: angularjs angular-cli

我正在使用@ 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不适用

1 个答案:

答案 0 :(得分:1)

我设法通过改变路由的方式来解决这个问题。

而不是:

{
    path: 'dashboard',
    loadChildren: 'app/dashboard/dashboard.module'
}

我用过:

{
    path: 'dashboard',
    loadChildren: 'app/dashboard/dashboard.module#DashboardModule'
}

无需在仪表板模块中使用默认设置 - 如果有人遇到与我相同的问题,则可以完美运行。