在Angular中使用多个共享模块

7

有人知道在Angular应用中使用多个共享模块是否有意义吗?

我不确定的是,如果将所有管道、指令和常用组件放在一个大的共享模块中,然后在懒加载模块中导入它(在那里我只使用导入功能中的一两个),这可能会导致输出文件中存在未使用的代码副本。 如果我将共享特性拆分成几个共享模块,并且仅导入每个特定模块所需的那些模块,是否会减小我的应用程序的大小?还是Angular默认进行所有这些优化?

我知道webpack(Angular构建系统基于其上)允许将常见块放在一个文件中。但我不确定它是否与懒加载模块良好配合。


也许这会对你有所帮助:https://stackoverflow.com/questions/45024406/do-unused-components-in-shared-modules-slows-down-my-application - harold_mean2
1个回答

8
我对ng build在这种情况下的输出进行了一些调查。我使用了两个懒加载模块(它们对共享功能的依赖不同),并将我的共享模块导入到它们中。然后我构建了应用程序并检查了它们的文件。它们没有额外的代码,只是引用了完全放置在main.bundle.js中的共享模块。
因此,这意味着将共享功能放入每个应用程序的一个公共共享模块中,在总体构建大小方面与将它们分散在多个共享模块之间没有区别。

很好的调查,您可能还想阅读文章避免在Angular中出现常见的模块混淆 - Max Koretskyi
是的,angularindepth.com出版物中有许多独特的文章。 - Max Koretskyi
1
将共享特性放入一个共同的共享模块中是否会影响初始捆绑包大小? - Manoj
@MaxKoretskyi 发送的更新链接为:https://indepth.dev/posts/1056/avoiding-common-confusions-with-modules-in-angular - Cedric

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接