我想知道在 Angular 中使用库而不是模块有什么好处,因为 nx.dev 建议使用 monorepo 架构。
我理解 npm 可发布功能的好处,比如另一个 repo 将使用的接口,但是为什么我要从业务相关的功能中创建一个库,比如主页,例如:
myorg/
??? apps/
? ??? todos/
? ??? todos-e2e/
??? libs/
??? todos/
??? home/ <-- why nx recommends making a library here?
??? src/
??? lib/
??? home.component.html/ts/scss
??? home.module.ts
??? tools/
??? README.md
??? workspace.json
??? nx.json
??? package.json
Run Code Online (Sandbox Code Playgroud)
而不是
myorg/
??? apps/
? ??? todos/
[...]
??? home/ <-- just a simple lazy loaded module here
??? home.component.html/ts/scss
??? home.module.ts
? ??? todos-e2e/
??? libs/
??? tools/
??? README.md
??? workspace.json
??? nx.json
??? package.json
??? tsconfig.json
Run Code Online (Sandbox Code Playgroud)
NX 建议您将90%以上的代码放在库中,这些库的目的不仅是在不同的应用程序之间共享代码,我们还可以创建库,即使代码未共享,并且仅将应用程序文件夹用于配置,例如路由和环境。
我们不得不提到将您的代码分成小单元(库)的好处,您可以单独测试和构建它们。
因此,在您的情况下,它可以是一个可以延迟加载到您的应用程序中的库,它可以管理自己的路由,这是从他们的书中获取的库类型列表
功能库:开发人员应将功能库视为为特定业务用例或应用程序页面实现智能 UI(具有注入服务)的库。
UI 库:UI 库仅包含展示组件。
数据访问库:数据访问库包含用于与后端系统交互的服务和实用程序。它还包括所有与状态管理相关的代码。
实用程序库:实用程序库包含许多库和应用程序使用的通用实用程序和服务。
当你看到所有这些类型的库时,你就会明白这个想法是在库中拥有最多的代码而不是应用程序。
当Victor Savkin谈到 libs时,我邀请你检查这个
https://youtu.be/qYNiOKDno_I?t=6m35s
| 归档时间: |
|
| 查看次数: |
1451 次 |
| 最近记录: |