RouterModule.forRoot() called twice

简介: RouterModule.forRoot() called twice

错误消息:

image.png


Spartacus 版本:2.1.7


确保您的缓存(来自 CDN 和 ServiceWorker)已正确调整。 OCC调用也应该尽量缓存在CDN上。


我们查看了源代码,尤其是旨在延迟加载的 HomeModule,并发现该方法存在一个过时的问题,结果导致报告的错误:

HomeModule 正在导入 B2cStorefrontModule,它在任何情况下都不应该被导入两次,尤其是不应该被延迟加载。


任何延迟加载的模块都应该只导入最必要的模块以避免额外的性能影响,这对于像 B2cStorefrontModule(完整的 b2c 店面 recipe)这样的配方模块尤其重要。


如果你想在自定义模块中提供配置,你应该使用 ConfigModule.withConfig() 或 provideConfig 实用程序 (https://sap.github.io/spartacus-docs/global-configuration-in-spartacus/)。


通常,在高度定制的店面中,我们建议根本不使用这些配方模块,而是通过仅导入所需的模块来构建个性化定制的店面。此外,我们正在弃用 3.x 中的 b2cStorefrontModule,并计划完全删除它以支持标准化的参考结构。你可以在这里阅读:https://sap.github.io/spartacus-docs/reference-app-structure/


B2cStorefrontModule 将默认 b2c 店面的所有默认模块包装到一个巨大的模块中,它允许快速设置店面(通过一次导入和提供 withConfig 配置的能力),因此它更适合快速设置 spartacus,而不是在其上构建复杂的自定义 .


本地执行和 CCv2(开发、阶段或生产)之间的延迟加载不应该有任何差异。


相关文章
|
2月前
|
SQL 开发框架 安全
【译】You probably should stop using a custom TaskScheduler
以更明确的方式控制并发 我认为并发控制(又称速率限制)是应用程序非常重要的方面,重要的方面应该是明确的。 TaskScheduler 相当低级别的工具,我宁愿拥有更高级别的工具。如果工作是 CPU 密集型的,那么 PLINQ 或类似 ActionBlock TPL DataFlow 的东西可能是更好的选择。 如果工作主要是 IO 绑定和异步的,那么可以使用 Parallel.ForEachAsync 或 Polly.RateLimiting 基于 的 SemaphoreSlim 自定义帮助程序类。 结论
43 3
|
4月前
|
前端开发 JavaScript 算法
shouldComponentUpdate 是做什么的?
shouldComponentUpdate 是做什么的?
107 0
|
9月前
(node)Warning: Accessing non-existent property ‘xxx‘ of module exports inside circular depen
(node)Warning: Accessing non-existent property ‘xxx‘ of module exports inside circular depen
|
10月前
ModuleNotFoundError: No module named ‘exceptions‘
ModuleNotFoundError: No module named ‘exceptions‘
A. Calculating Function
A. Calculating Function
41 0
|
缓存 JavaScript Go
你真的了解esModule吗
项目中我们常常会接触到模块,最为典型代表的是esModule与commonjs,在es6之前还有AMD代表的seajs,requirejs,在项目模块加载的文件之间,我们如何选择,比如常常因为某个变量,我们需要动态加载某个文件,因此你想到了require('xxx'),我们也常常会用import方式导入路由组件或者文件,等等。因此我们有必要真正明白如何使用好它,并正确的用好它们。
Calculating Function
Calculating Function
77 0
Calculating Function
ModuleNotFoundError: No module named ‘exceptions‘ 情况解决
目前博主遇到的这种情况有两种情况: 1. 没有装入对应的包 ,当然最好的方式就是安装上对应的包 命令如下 2. 装的包是错误的,比如上面这种,如果安装docx的话,是会有问题的 所以要安装python-docx: 具体的解决方式是:
1418 0
ModuleNotFoundError: No module named ‘exceptions‘ 情况解决
RouterModule.forRoot 和 RouterModule.forChild 的区别
RouterModule.forRoot 和 RouterModule.forChild 的区别
263 0
RouterModule.forRoot 和 RouterModule.forChild 的区别