NX one Ui-lib 或为每个 Ui 用例创建一个库
NX one Ui-lib or create a lib for each Ui usecase
所以我想在我的 angular 项目中创建共享库。我在下面列出了我的两种方法,它们都可以发挥作用,但我不知道我应该实施哪种方法更好。
#1 一个 Ui 包含 X 组件的库
libs
├── [...]
└── shared
└── ui (lib)
├── ui-card (component)
└── ui-*
#2 每个库 Ui
libs
├── [...]
└── shared
├── ui-card (lib)
│ └── card (component)
└── ui-* (lib)
└── *
这篇文章说我应该遵循我的第二种方法,但它没有解释为什么你应该为每个 ui 创建一个库:https://medium.com/showpad-engineering/how-to-organize-and-name-applications-and-libraries-in-an-nx-monorepo-for-immediate-team-wide-9876510dbe28
如果我的问题的解决方案也可以用于 data-access
和 util
libs
,我也很高兴知道
如果您在一个模块中有多个组件,那么您的最终捆绑包将包含所有组件,即使您只使用其中的一小部分。
如果您为每个组件(或始终一起使用的组件)创建一个模块,您的包大小会更有效率,但最终会有更多的样板代码。
第二种方法也是Angular Material之后的那种。
当我们处理作为应用程序一部分的 UI 库时,我认为没有必要为每个组件配备一个模块。
如果您像 Material 一样将 UI 库发布为“真正的 npm 库”,那就另当别论了。
对于 data-access
、util
和 feature
库,我绝对不会遵循第二种策略。这些通常是为应用程序的特定需求而设计的,即您将需要所有这些,在这种情况下,更少的样板文件更重要。
所以我想在我的 angular 项目中创建共享库。我在下面列出了我的两种方法,它们都可以发挥作用,但我不知道我应该实施哪种方法更好。
#1 一个 Ui 包含 X 组件的库
libs
├── [...]
└── shared
└── ui (lib)
├── ui-card (component)
└── ui-*
#2 每个库 Ui
libs
├── [...]
└── shared
├── ui-card (lib)
│ └── card (component)
└── ui-* (lib)
└── *
这篇文章说我应该遵循我的第二种方法,但它没有解释为什么你应该为每个 ui 创建一个库:https://medium.com/showpad-engineering/how-to-organize-and-name-applications-and-libraries-in-an-nx-monorepo-for-immediate-team-wide-9876510dbe28
如果我的问题的解决方案也可以用于 data-access
和 util
libs
如果您在一个模块中有多个组件,那么您的最终捆绑包将包含所有组件,即使您只使用其中的一小部分。
如果您为每个组件(或始终一起使用的组件)创建一个模块,您的包大小会更有效率,但最终会有更多的样板代码。
第二种方法也是Angular Material之后的那种。
当我们处理作为应用程序一部分的 UI 库时,我认为没有必要为每个组件配备一个模块。
如果您像 Material 一样将 UI 库发布为“真正的 npm 库”,那就另当别论了。
对于 data-access
、util
和 feature
库,我绝对不会遵循第二种策略。这些通常是为应用程序的特定需求而设计的,即您将需要所有这些,在这种情况下,更少的样板文件更重要。