【发布时间】:2021-09-03 08:10:47
【问题描述】:
我正在尝试将现有代码从 Angular 应用程序构建到共享库。该库也应该被其他应用程序使用。因此,我创建了多个子条目来构建可摇树的代码。
考虑以下结构:
- lib
- entryA
- /src
- index.ts
- public-api.ts
- package.json
- entryB
- /src
- index.ts
- public-api.ts
- package.json
- entryC
- /src
- index.ts
- public-api.ts
- package.json
- ...
- ng-package.json
- package.json
一些条目依赖于其他条目(没有循环依赖)。例如,EntryA 没有依赖关系,但 EntryB 依赖于 EntryA,因此在 EntryB 中导入。
然后在EntryB中导入具体的服务:
import { MyService } from '@myorg/mylib/lib/entryA';
路径由tsconfig.json文件中的配置解析:
"paths": {
"@myorg/mylib/*": ["./projects/ui/*", "./projects/ui"],
"@myorg/mylib": ["./dist/ui/*", "./dist/ui"],
}
库的构建按预期工作并且不会引发错误。在消费者应用程序中,该库是通过package.json 定义的,并在一个角度模块中导入。应用要使用EntryB:
import { MyModule } from '@myorg/mylib/lib/entryB';
但是,consumer应用的构建抛出了在EntryB中找不到EntryA所需依赖的错误:
ERROR in The target entry-point "@myorg/mylib/lib/entryB" has missing dependencies:
- @myorg/mylib/lib/entryA
如何处理这些子条目之间的依赖关系?
【问题讨论】:
标签: angular typescript angular-library