我有以下代码
@NgModule({
declarations: [
...
],
imports: [
RoutingModule,
SharedModule,
JwtModule.forRoot({
config: {
headerName: 'Authorization',
tokenGetter: () => localStorage.getItem('token’), // <———— this line has problem
whitelistedDomains: ['localhost:4200']
//blacklistedRoutes: ['localhost:3001/auth/', 'foo.com/bar/']
}
})
],
...
})
export class AppModule { }
它可以使用ng serve
,但运行时出现以下错误ng build --prod
ERROR in Error during template compile of 'AppModule'
Function expressions are not supported in decorators in 'ɵ0'
'ɵ0' contains the error at app/app.module.ts(36,22)
Consider changing the function expression into an exported function.
然后我将代码修改为
function getToken() {
return localStorage.getItem('token')
}
…
JwtModule.forRoot({
config: {
headerName: 'Authorization',
tokenGetter: () => getToken,
whitelistedDomains: ['localhost:4200’]
...
而且还是不开心
ERROR in app/app.module.ts(19,10): Error during template compile of
'AppModule'
Reference to a non-exported function.
最后,我通过导出getToken
功能解决了该问题。
我有以下问题
ng serve
可行却不可行ng build --prod
?您遇到的问题是由于Angular中的Ahead-of-Time(AOT)编译器引起的。默认情况下,ng serve
并ng build
用刚刚实时(JIT)编译器。但是,ng build --prod
使用AOT编译器。您可以模拟同样的行为ng serve --aot
。
所以,对你的问题。
希望这可以帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句