分离NgModules是否会减少构建时间

时间:2019-07-09 07:33:16

标签: angular angular-module angular-compiler angular-builder

假设我们有一个很大的NgModule SharedModule,它会导出很多组件中需要的多个组件。通过将SharedModule导入功能模块,通常会产生开销,因为所有共享组件都会被导入,而不仅仅是必需的组件。拆分SharedModule会减少构建/编译时间吗?除了可读性更好的代码之外,将其拆分为较小的模块是否有任何优势?

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

从官方网站angular.io

在具有几个组件的简单应用程序中,只需使用根模块。随着应用程序的增长,您可以将根模块重构为代表相关功能集合的功能模块。然后,将这些模块导入到根模块中。

描述应用程序的区域有助于开发人员和团队之间的协作,分隔指令并管理根模块的大小。 功能模块是组织的最佳实践,而不是核心Angular API的概念。

没有什么可以减少构建/编译时间的,所以我认为这很有意义

对于具有很多路由的大型应用程序,请考虑使用lazy loading-一种根据需要加载NgModules的设计模式。

答案 1 :(得分:1)

您可以实施延迟加载,以减少应用加载时间 将功能拆分为模块将减少应用程序加载时间 您可以实施延迟加载,您的应用程序将按需在客户端加载,例如您有5个模块,用户要使用5号模块,则此唯一模块将在客户端加载。其他4个模块将不会加载。 浏览器首先在客户端下载您的应用,然后解压缩。您的5个模块大小为5MB,然后在延迟加载后,您的应用大小将分成不同的块。模块大小将取决于功能。

我不确定采用模块化方法后会减少编译时间。但是,重要的是,您的应用加载时间肯定会减少,

您的代码将得到很好的管理和可读性。将按照最佳角度进行操作

模块化方法将降低代码的复杂性

大模块不是好方法。 如果您正在使用大型应用程序,则迟早必须将应用程序移至模块化,否则维护或应用程序加载时间将不容易解决