模块捆绑与加载 - 仅提供客户端

时间:2017-06-16 08:20:24

标签: angularjs typescript webpack es6-module-loader

我们最近迁移到在Angular 1.x项目中使用TypeScript,并使用Webpack进行模块捆绑,允许我们生成源的连接版本以包含在我们的index.html页面中。

在John Papa的风格指南等方面,我们一直谨慎地遵循最佳实践,模块化我们的角度应用。

我最近一直在思考的是,我们所有的角度特征模块都捆绑在webpack为我们创建的最终文件中。

将不一定允许将登录该应用程序的用户根据其帐户权限设置(我们在登录时读取)访问所提供的所有功能。如果用户只能访问5个功能中的2个,那么在他们的浏览器中,下载的源代码仍将包含所开发的整套功能(是的,我们会对我们的来源进行说明)。

我已经看过提到的模块加载器,并且想知道它们是否可以用于仅仅为客户端在应用程序中导航时提供的服务?

因此,在加载应用程序时,他们只会获得所需的核心模块\功能,例如:通过导航等将他们带到主页

然后当他们点击他们可以访问的功能区域时,只能将那些相关的模块源拉下来,并且可能会在稍后重新访问以进行重新访问?

我意识到这最终会有更多的网络请求,但首次访问该应用程序的初始负载会更快?

我对模块捆绑和加载相当新,我认为我对差异有基本的了解。当涉及到这类事情时,其他人使用了哪些方法?

由于

1 个答案:

答案 0 :(得分:1)

我想你找不到最好的答案。所有你会听到的:这取决于。

例如:

  • 如果您的应用程序中包含动态加载的模块,并且初始加载时间至关重要 - 请使用systemjs / jspm。
  • 如果响应能力非常关键 - 请使用webpack。

对此问题进行了一些很好的比较/讨论:hereherehere等等 - 但最重要的是 - 您必须评估并做出明智的决定自己。