【发布时间】:2017-11-27 13:19:27
【问题描述】:
我正在尝试使用 angular cli 版本 1.5.2 的此命令构建用于生产的 angular 版本 5 应用程序:
ng build --prod
但它给了我这个错误:
错误中的错误:静态解析符号值时遇到错误。调用函数“FlashMessagesModule”,不支持函数调用。考虑用对导出函数的引用替换函数或 lambda,解析 D:/Project/mean-auth-app/angular-src/src/app/app.module.ts 中的符号 AppModule,解析符号 AppModule 中D:/Project/mean-auth-app/angular-src/src/app/app.module.ts
似乎 angular v5.0 与 angular2-flash-messages 模块版本 2.0.0 有冲突。 我做了完全相同的事情here 来安装和设置闪存消息模块。我搜索了但我找不到任何有用的提示。有些人称之为错误,有些人可以通过卸载/安装有问题的包来解决他们的问题。
我的应用模块:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { RouterModule, Routes } from '@angular/router';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
import { NavbarComponent } from './components/navbar/navbar.component';
import { LoginComponent } from './components/login/login.component';
import { RegisterComponent } from './components/register/register.component';
import { HomeComponent } from './components/home/home.component';
import { DashboardComponent } from './components/dashboard/dashboard.component';
import { ProfileComponent } from './components/profile/profile.component';
import { AccountService } from './services/account.service';
import { FlashMessagesModule } from 'angular2-flash-messages';
import { JwtModule } from '@auth0/angular-jwt';
import { HttpClientModule } from '@angular/common/http';
import { AuthGuard } from './services/auth-guard.service';
const routes = [
{ path: '', component: HomeComponent },
{ path: 'register', component: RegisterComponent },
{ path: 'login', component: LoginComponent },
{ path: 'dashboard', component: DashboardComponent, canActivate: [AuthGuard]},
{ path: 'profile', component: ProfileComponent, canActivate: [AuthGuard]}
];
@NgModule({
declarations: [
AppComponent,
NavbarComponent,
LoginComponent,
RegisterComponent,
HomeComponent,
DashboardComponent,
ProfileComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
FlashMessagesModule.forRoot(),
RouterModule.forRoot(routes),
HttpClientModule,
JwtModule.forRoot({
config: {
tokenGetter: () => {
return localStorage.getItem('token');
},
whitelistedDomains: ['localhost:4200']
}
})
],
providers: [AccountService, AuthGuard],
bootstrap: [AppComponent]
})
export class AppModule { }
感谢任何解决此问题的提示。
【问题讨论】:
-
如消息所述:您不允许在装饰器中使用 lamda 函数。尝试将其重写为您通过
tokenGetter引用的导出函数。 -
@Dinistro 感谢您的回复。但它提到了 FlashMessagesModule
-
FlashMessagesModule不是导致此错误的原因。
标签: javascript angular angular-cli flash-message