8

我是 Angular2 的新手,我很想知道是否有可能在另一个应用程序中从一个应用程序中重用整套表示组件?

例如,我有一个名为 MyApp 的 Angular 2 应用程序,其中我创建了一些常用组件,这些组件位于 app/components/common 文件夹中,每个都包含一个 TypeScript、Sass 和 HTML 文件。

我使用 Gulp 将 TypeScript 编译为 JS,将 Sass 编译为 CSS。

我现在发布这些通用组件可以在我的其他 Angular 2 应用程序中通用,因此我想在名为 MyOtherApp 的单独 Angular 2 应用程序中使用它们。

我希望能够从 MyApp 中提取所有常用组件,并能够在 MyOtherApp 中使用它们。

这可能吗?如果是这样,这种组件共同共享的最佳方法是什么?

正如我所说,我使用 Gulp 来构建/运行,还使用 ​​System.js 来配置 Angular 应用程序。

如果需要,我可以分享一些我尝试过的代码,但我不确定什么是有帮助的分享,所以请请求什么可能有用,我会分享。

4

2 回答 2

4

我认为最通用的方法是构建一个单独的库来发布 NgModule——就像 Angular 本身、Angular Material 2 库和其他库一样。然而,为库设置构建脚本需要更多的努力,并且更难以调试。

另一种选择是为所有具有不同入口点文件的应用程序创建一个 TypeScript 项目,并为每个项目使用 Angular 引导函数

于 2016-10-06T17:15:45.340 回答
0

我像这样组织我的组件:

/routes
  /route1/
    route1component.ts
    /route1child1
    /route1child2
  /route2/
    route2component.ts
    /route2child1
    /route2child2

/apponents (project-level-reuse, must be used in at least 2 places with the app to be promoted to an apponent)
  /project-reusable-component

/components (cross-project-level-reuse, used across multiple projects)
  /cross-project-reusable-component

让我们假设使用 Git。现在在“组件”中,我通常可以使用 Git 子模块在项目之间共享这些,这样可重用的“组件”将存在于它们自己的存储库中,并且可以作为子模块被拉入任何项目。

于 2017-07-24T12:55:47.330 回答