尝试设置ngx-formly-material-file,但出现错误:装饰器不支持函数调用,但调用了“FileTypeModule”
我试图导出 FileTypeModule,但得到了同样的错误
export const fileTypeModule = FileTypeModule.forRoot();
@NgModule({
imports: [fileTypeModule]
})
尝试设置ngx-formly-material-file,但出现错误:装饰器不支持函数调用,但调用了“FileTypeModule”
我试图导出 FileTypeModule,但得到了同样的错误
export const fileTypeModule = FileTypeModule.forRoot();
@NgModule({
imports: [fileTypeModule]
})
已经看到这种情况发生了很多次,上次使用 Angular 9,发生ng build <my-library>
在forRoot
我添加了tsconfig.lib.json
这个,错误就消失了。
"angularCompilerOptions": {
"fullTemplateTypeCheck": true
}
编译器开关实际上启用了模板编译器的fullTemplateTypeCheck
绑定表达式验证阶段。在此处查看更多详细信息。
装饰器不支持函数调用,但调用了“FileTypeModule”
我没有关于此错误消息的好消息。
这是 Angular 8.2.x 及更高版本的一个问题,它引入了对如何生成元数据的限制,NgModule
这是最近更新以支持 Ivy 的副作用。
export const fileTypeModule = FileTypeModule.forRoot();
修复此错误的唯一方法是修改forRoot()
模块中的函数。在该函数中可以做什么有严格的限制。
您不能动态生成任何提供程序、使用箭头函数或有条件地创建NgModule
元数据。
这个错误现在在多个库中有很长的历史:
https://github.com/ng-packagr/ng-packagr/issues/727
https://github.com/angular/angular/issues/23609
你可以在这里找到我解决这个问题的具体方法:
https://github.com/angular/angular/issues/23609#issuecomment-561615821
如果您不是作者,FileTypeModule
唯一的解决方法是联系作者并请求他们解决问题,或者您分叉库并自己进行修复。