ConfigModule.withConfig 或在斯巴达克斯中提供配置

ConfigModule.withConfig or provideConfig in Spartacus

这两个配置有什么区别,什么时候应该使用哪个?

ConfigModule.withConfig({})

provideConfig({})

文档没有提供这个问题的明确答案。 https://sap.github.io/spartacus-docs/global-configuration-in-spartacus/

如文档中所述,它们是相同的。

ConfigModule.withConfig({}) 的行为方式与 provideConfig({})

相同

它们的区别在于前者用于import数组,后者用于provider数组

但是,您可以在 Spartacus 存储库中创建一个问题 https://github.com/SAP/spartacus/issues 以开启弃用 ConfigModule.withConfig

的讨论

'legacy' 方式

@NgModule({
  imports: [ConfigModule.withConfig({...})],
  providers: [...]
  ...
})
...

'preferred' 方式

@NgModule({
  imports: [...],
  providers: [provideConfig({...})]
  ...
})

完整示例:

旧:

import {CmsConfig, ConfigModule} from "@spartacus/core";

@NgModule({
  imports: [
    CommonModule,
    ConfigModule.withConfig({
      cmsComponents:{
        YourCustomComponentFlexType: {
          component: YourCustomComponent
        }
      }
    } as CmsConfig),
  ],
})

首选:

import {provideConfig} from "@spartacus/core";

@NgModule({
  imports: [
    CommonModule
  ],
  providers: [
    provideConfig({
      cmsComponents: {
        YourCustomComponentFlexType: {
          component: YourCustomComponent
        }
      }
    }),
  ]
})