【问题标题】:NG2 Cli module discovery and loadingNG2 Cli 模块发现和加载
【发布时间】:2017-06-16 05:37:41
【问题描述】:
我开始为完全模块化的后端(一个 vertx verticles docker 集群)开发前端。
主要的想法/问题是有一个基本的 ng2 应用程序,它定义了仪表板、侧边菜单和其他基本组件,并连接到后端,通过某种包含路径的清单列表来发现启用了哪些模块需要的 JS 文件/包,模块应该是完全独立的,你可以从 github 下载并放在一个文件夹中。
到目前为止,我发现的最接近的问题是Angular2: Loading modules dynamically from a given folder,它展示了如何在运行时加载模块,但我还没有找到独立开发和构建包的方法。
这甚至可能吗?你们能指出我正确的方向吗?我是否错过了这方面的任何例子?
【问题讨论】:
标签:
angular
webpack
modularity
【解决方案1】:
如果您为此使用 Angular CLI 而不是滚动自己的构建,则必须预先定义所有路由。
您可以做的是将所有模块设置为延迟加载的路由器模块(使用load-children,然后根据仪表板的说明使用路由器保护来加载它们。
【解决方案2】:
这是一个棘手的问题,但据我了解,最接近的方法是将模块作为独立模块实际分发到 github/npm 中,然后将它们作为依赖项添加到项目中。
然后您可以设置延迟加载路由来导入这些独立模块。您仍然必须在任何地方明确引用它们,因此它不是从目录中发现的纯粹的交易,不确定有多少要求。
不过,一般而言,值得注意的是,如果您要引入提供程序,延迟加载可能并不理想。您通常希望在主模块中使用 forRoot() 导入它们,并避免在可能多次包含的模块中提供它们,以免获得多个实例。