NX一个Ui库,或者为每个Ui用例创建一个库



所以我想在我的angular项目中创建共享库。我在下面列出了我的两种方法,它们都能发挥作用,但我没有,我应该实施哪一种更好。

#1一个Ui库,内部有X个组件

libs
├── [...]
└── shared
└── ui (lib)
├── ui-card (component)
└── ui-*

#2每个Ui的库

libs
├── [...]
└── shared
├── ui-card (lib)
│    └── card (component)
└── ui-* (lib)
└── *

本文指出,我应该遵循第二种方法,但没有解释为什么应该为每个ui创建一个lib:https://medium.com/showpad-engineering/how-to-organize-and-name-applications-and-libraries-in-an-nx-monorepo-for-immediate-team-wide-9876510dbe28

如果我的问题的解决方案也可以用于data-accessutillibs ,我也很高兴知道

如果您在一个模块中有多个组件,那么您的最终捆绑包将包含所有组件,即使您只使用其中的一小部分。

如果您为每个组件(或总是一起使用的组件(创建一个模块,那么束大小会更高效,但最终会有更多的样板代码。

第二种方法也是Angular Material所遵循的方法。


当我们处理作为应用程序一部分的UI库时,我不认为每个组件需要一个模块。

如果您将UI库发布为";真正的npm库";和Material一样,这是一个不同的故事。

我肯定不会遵循data-accessutilfeature库的第二种策略。这些通常是为应用程序的特定需求而设计的,即您将需要所有这些,在这种情况下,样板文件越少就越重要。

最新更新