【问题标题】:Not compile code of angular 5 in prod mode在 prod 模式下不编译 angular 5 的代码
【发布时间】:2018-04-08 03:04:00
【问题描述】:

我正在使用此代码

import { NgModule, ModuleWithProviders } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { MainModule } from './main/main.module';
import { AuthModule } from './auth/auth.module';
const routes: Routes = [
{path: '', redirectTo: 'auth', pathMatch: 'full'},
{path: 'login' , redirectTo: 'auth' , pathMatch: 'full'},
{path: 'auth', loadChildren: () => AuthModule }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
})
export class AppRoutingModule { }

它适用于 ng build 但不适用于 prod 模式 'ng build --prod'

错误:

app/app.module.ts(20,5) 中的错误:模板编译期间出错 'AppModule' 函数表达式在装饰器中不受支持 'AppRoutingModule' 'AppRoutingModule' 引用 'ɵ0' 'ɵ0' 包含 app/app-routing.module.ts(9,33) 的错误考虑更改 将函数表达式转换为导出的函数。

【问题讨论】:

  • 你能准确的解决这个问题吗?显示一些错误字符串或其他东西让我们开始......
  • app/app.module.ts(20,5) 中的错误:“AppModule”模板编译期间出错“AppRoutingModule”中的装饰器不支持函数表达式“AppRoutingModule”引用“ɵ0” ɵ0' 包含 app/app-routing.module.ts(9,33) 处的错误考虑将函数表达式更改为导出函数。
  • 从@NgModule 中移除exports: [RouterModule], 然后试一试
  • 还是同一个发行人
  • 你能分享一下回购吗?

标签: javascript typescript angular5


【解决方案1】:
{path: 'auth', loadChildren: () => AuthModule }

这条线是你的问题。 AoT 编译不能管理函数表达式,它需要静态引用。 替换为:

{path: 'auth', loadChildren: './auth/auth.module#AuthModule' }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 2018-02-20
    • 2020-11-02
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    • 2013-01-14
    相关资源
    最近更新 更多