У меня следующий код
@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
? - Почему не работает встроенная лямбда?
- Почему я должен экспортировать функцию?