2017-02-22 97 views
2

我们正在忙于构建一个相当大的企业应用程序,它有大量的模块和组件。我所面对的问题是,我需要允许公司的其他开发人员为此应用程序开发组件,而不必更改应用程序本身使用的代码。动态加载模块? angular2

一个例子是:

“彼得”是从其他业务单元开发者内部的组织需要建立一个图表组件。我们不希望Peter改变大型应用程序的代码,而是建立并维护他自己的'模块'(这些组件将建立在一个设定的界面上,以允许主机应用程序与孩子沟通)图表“组件),它处理他在图表组件中需要的所有功能。在较大的应用程序中,我们需要能够指向此模块(通过配置)并动态加载它。

这里的重点是我需要允许任何开发人员引用他自己的模块,而不需要我的应用程序专门了解组件。由于需要在运行时加载,因此我不能在entryComponents或声明中使用它,应该允许根据使用该应用程序的业务单位的要求进行更改。

我一直在寻找SystemJsNgModuleLoader,但我看不到加载不直接作为我应用程序组成部分的组件。

我不知道这是否可能,如果我错过了某个地方的东西。任何指导/意见将不胜感激。

回答

0

源控制

使用git源控制。

发展

开发功能模块。将它们捆绑到一个可用来源的UMD捆绑包中。这使您的开发人员:

  1. 目标AOT适合于生产发展

部署

期间

  • 负载动态模块静态包部署您的模块作为版本包NPM (建立私人托管的NPM存储库)。

    部署之后,开发人员可以安装,版本和管理软件包的依赖关系,就像任何其他的NPM包:

    npm install <package>