RouterModule.forRoot() called twice
錯(cuò)誤消息:
RouterModule.forRoot() called twice.
Lazy loaded modules should use RouterModule.forChild() instead.
Spartacus 版本:2.1.7
確保您的緩存(來自 CDN 和 ServiceWorker)已正確調(diào)整。 OCC調(diào)用也應(yīng)該盡量緩存在CDN上。
我們查看了源代碼,尤其是旨在延遲加載的 HomeModule,并發(fā)現(xiàn)該方法存在一個(gè)過時(shí)的問題,結(jié)果導(dǎo)致報(bào)告的錯(cuò)誤:
HomeModule 正在導(dǎo)入 B2cStorefrontModule,它在任何情況下都不應(yīng)該被導(dǎo)入兩次,尤其是不應(yīng)該被延遲加載。
任何延遲加載的模塊都應(yīng)該只導(dǎo)入最必要的模塊以避免額外的性能影響,這對(duì)于像 B2cStorefrontModule(完整的 b2c 店面 recipe)這樣的配方模塊尤其重要。
如果你想在自定義模塊中提供配置,你應(yīng)該使用 ConfigModule.withConfig() 或 provideConfig 實(shí)用程序 (https://sap.github.io/spartacus-docs/global-configuration-in-spartacus/)。
通常,在高度定制的店面中,我們建議根本不使用這些配方模塊,而是通過僅導(dǎo)入所需的模塊來構(gòu)建個(gè)性化定制的店面。此外,我們正在棄用 3.x 中的 b2cStorefrontModule,并計(jì)劃完全刪除它以支持標(biāo)準(zhǔn)化的參考結(jié)構(gòu)。你可以在這里閱讀:https://sap.github.io/spartacus-docs/reference-app-structure/
B2cStorefrontModule 將默認(rèn) b2c 店面的所有默認(rèn)模塊包裝到一個(gè)巨大的模塊中,它允許快速設(shè)置店面(通過一次導(dǎo)入和提供 withConfig 配置的能力),因此它更適合快速設(shè)置 spartacus,而不是在其上構(gòu)建復(fù)雜的自定義 .
本地執(zhí)行和 CCv2(開發(fā)、階段或生產(chǎn))之間的延遲加載不應(yīng)該有任何差異。
總結(jié)
以上是生活随笔為你收集整理的RouterModule.forRoot() called twice的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一些关于 SAP Spartacus 组
- 下一篇: 工信部和国家体育总局公布2022年度智能