ERROR in Error遇到静态解析符号值。调用功能'
DataModule
',不支持函数调用。考虑使用对导出函数的引用替换函数或lambda,解析DataModuleRoot
中的符号E:/shopify-client/src/app/app.module.ts
,解析AppModule
中的符号E:/shopify-client/src/app/app.module.ts
,解析符号AppModule
inE:/shopify-client/src/app/app.module.ts
使用Angular CLI构建项目时,我一直收到此错误。令人沮丧的是,它每次启动ng serve
时才出现一次,然后在后续更新时不会出错。但这通常意味着我不能只运行build命令,因为第一次运行会导致阻止文件输出的错误。 DataModule是我制作的模块,我使用Angular文档制作了forRoot方法。
export function DataModuleRoot(){
return DataModule.forRoot({});
}
@NgModule({
declarations: [
AppComponent,
HomeComponent,
NavtreeComponent,
JsonifyPipe,
DebugPipe,
PanelsComponent,
IsolateScrollDirective
],
imports: [
BrowserModule,
AppRoutingModule,
HttpModule,
DataModuleRoot(),
PagesModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
这是DataModule
@NgModule({
imports: [
CommonModule
],
declarations: [],
providers: [DataService]
})
export class DataModule {
constructor( @Optional() @SkipSelf() parentModule: DataModule) {
if (parentModule) {
throw new Error(
'DataModule is already loaded. Import it in the AppModule only');
}
}
static forRoot( config: any = {}): ModuleWithProviders {
const io: Function = function () { };
const host = (window as any).devHost || config.host || location.origin
const socket: Socket = false ? io(host) : {
id: '',
on: function () { },
off: function () { },
emit: function () { },
isFailed: false
};
//;
(window as any).socket = socket;
return {
ngModule: DataModule,
providers: [
{
provide: DataServiceConfig,
useValue: {
socket: socket,
host: host,
globalCache: {},
globalSettings: {},
}
}
]
};
}
}
我已经在StackOverflow上阅读了许多其他类似的问题,但没有一个回答我的问题。
答案 0 :(得分:0)
整个问题实际上是我在同一个函数中有const声明。正如您所看到的,我可以在返回值中使用变量或函数调用,我只是无法在函数体中声明任何内容。这是AoT编译器的一个弱点。
Consumer