应用程序正在生成我的延迟加载模块的一部分,前缀为 default ~ .. 甚至在它被调用之前
Posted
技术标签:
【中文标题】应用程序正在生成我的延迟加载模块的一部分,前缀为 default ~ .. 甚至在它被调用之前【英文标题】:Application is generating a chunk of my lazy load module with prefix default ~ .. even before its getting invoked 【发布时间】:2019-09-30 03:17:03 【问题描述】:我在我的 Angular 应用程序中实现了延迟加载(使用 CLI 7.3.4)
它编译成功,但是当我路由到一个延迟加载的模块(比如 module1 路径)时,它又加载了一个块,实际上是另一个延迟加载的模块(Module2)路径。
块名称: "../default~lazy-load-modules-module1-module1-module~lazy-load-modules-module2-mo~be6d77c5.js"
我无法理解为什么会生成这个默认值 ~。
我希望仅在调用其组件之一时加载模块。
【问题讨论】:
你的代码在哪里? 请分享一些代码,我认为你在这里遗漏了一些东西。 您好,感谢您的回复。我正在尝试创建一个堆栈闪电战,因为我无法共享我的代码。但不幸的是,我做不到。我发现了我的问题的副本,但尚未得到回答。请帮我回答这个question。它会帮助我。问候,阿基尔 您好,我尝试使用 namedChunks 进行产品构建:true。 prod 构建后生成的 js 文件:default~lazy-load-modules-module1-module1-module-ngfactory~lazy-load-modules-module2~f905bd40.e57cb63c897b03f07599.js default~lazy-load-modules-module2-module2-module- ngfactory~lazy-load-modules-m~e4585478.7b99f3d4bf5e27b58bfd.js 和 3 个单独的 js 文件用于 3 个单独的模块。 PS:我有一个共享模块,它只在 3 个模块中的 2 个模块中导入,这是生成默认值的原因吗? 【参考方案1】:它只是意味着生成的块属于模块1和模块2。
我相信你有一个共享模块。如果是,那么这是该模块的一部分。
如果您想了解更多信息,请告诉我。
【讨论】:
有什么办法可以预防吗? @NikhilYadav:下面是答案细节。在这种情况下,我没有使用任何共享模块。【参考方案2】:这个评论是w.r.t。角版11.2.1
...
这是可以在angular.json
文件中配置的默认功能(设置为true
)(commonChunk: false
,在aot
键下方添加此属性)。此外,我看到保持默认值的一大好处(改进捆绑包大小以在网络上加载和构建时间)。下面是一个演示:-
有一个共同的块:-
没有共同的块:-
Outro:我可以说,使用第二种方法,公共模块将与每个单独的延迟加载模块合并。如果那是您正在寻找的;然后调整 angular.json
文件中的设置。
请注意:构建时间取决于操作系统、硬件配置等。
【讨论】:
以上是关于应用程序正在生成我的延迟加载模块的一部分,前缀为 default ~ .. 甚至在它被调用之前的主要内容,如果未能解决你的问题,请参考以下文章