Angular:共享模块会使应用程序膨胀吗?

Angular: Does a shared module bloat an app?

我正在使用 Angular 8. 我有一个共享模块。有些模块只使用共享模块中的一两个组件。 Angular 是始终导入整个共享模块还是只导入使用过的组件并通过 tree shaking 删除其他组件?

此外,如果一组不同的组件使用相同的 components/services/modules,是让它们拥有自己的共享模块更好,还是一个共享模块供所有人使用?

只要您不使用延迟加载,angular构建将只有一个块,它将包含所有内容。所以在这种情况下使用单独的共享模块没有任何优势。

现在,考虑到您正在使用延迟加载,构建后,angular 将根据您的延迟加载模块创建不同的块。因此,如果您在每个惰性加载模块中都导入了共享模块,它会变得臃肿(在特定模块中需要或不需要)。

为了克服这个问题,创建不同的不同共享模块,并只导入那些需要的。这将只导入那些需要的模块,并减少为每个延迟加载模块创建的卡盘。