Angular 9-在其他项目中使用来自共享项目的共享组件';s子模块

Angular 9-在其他项目中使用来自共享项目的共享组件';s子模块,angular,typescript,architecture,web-component,angular9,Angular,Typescript,Architecture,Web Component,Angular9,我在导入和使用来自同一应用程序的共享项目的子项目中的共享组件时遇到了一个问题 以下是我们多项目应用程序的当前结构: 根 子项目(全新) SharedModule->负责子项目共享组件的导入和导出,仅对其可用 AppModule->子项目子模块的收集器(按原样) 共享项目(应用程序中已存在) SharedModule->this as在其forRoot()方法中有一个ModuleWithProviders子句,该子句允许AppModule可用于其他子项目 AppModule->可用于声明

我在导入和使用来自同一应用程序的共享项目的子项目中的共享组件时遇到了一个问题

以下是我们多项目应用程序的当前结构:

    • 子项目(全新)
      • SharedModule->负责子项目共享组件的导入和导出,仅对其可用
      • AppModule->子项目子模块的收集器(按原样)
    • 共享项目(应用程序中已存在)
      • SharedModule->this as在其forRoot()方法中有一个ModuleWithProviders子句,该子句允许AppModule可用于其他子项目
      • AppModule->可用于声明并导出其所有组件的其他子项目(错误解决方案,IMHO)
  • 我们的子项目已经被构造成子模块(即SharedModule),而共享项目只是一个普通项目,它有自己的AppModule和一个SharedModule插入到同一级别。 每当我们尝试将共享项目导出的组件导入子项目时,要么无法使它们工作,要么用共享组件覆盖子项目的AppModule,从而丢失属于子项目本身的所有功能

    我们尝试了几种解决方案,使用forRoot()调用整个共享项目的SharedModule,并直接调用共享项目的AppModule,但都不起作用

    你对如何解决这个问题有什么建议吗


    谢谢。

    在一个解决方案项目下的不同项目中共享组件

    第1步-您必须创建单独的“共享模块”或任何您喜欢的名称,模块应该在消费项目之外

    第2步-您的所有消费者项目都应使用“共享模块”或导入“共享模块”

    范例-

    解决方案-1

    -- Shared Module
    --Project1
      --- Module1 (import shared module)
      --- Module2
    --project2
      --- Module1
      --- Module2 (import shared module)
    
    在您的场景中,我认为您可以下拉共享组件并创建一种共享控制库,您可以在不同的项目中使用该库