Joh*_*ull 9 angular angular-library ng-packagr
我有一个关于角度库辅助入口点设置的非常具体的问题。我真的不明白当它们相互依赖(包括主入口点)时,如何设置它才能使其工作。我已经阅读了 ng-packagr 的文档以及很多问题和堆栈问题,但没有找到真正好的答案。问题是,我想将我们庞大的内部库分解成更小的部分,以便对于不需要一切的应用程序来说,导入和依赖项变得更小。
所以这就是我想要达到的目标:
这就是文件夹结构:
projects\my-lib
-- constants\
---- ...
---- package.json
---- public_api.ts
-- functions\
---- ...
---- package.json
---- public_api.ts
-- lang
---- ...
---- package.json
---- public_api.ts
-- broker
---- ...
---- package.json
---- public_api.ts
-- signalr
---- ...
---- package.json
---- public_api.ts
-- sso
---- ...
---- package.json
---- public_api.ts
-- src <-- the main entry point, as setup from the ng g library
---- lib
------ modules <-- the old ones from where i want to source parts out in secondary paths
-------- auth
-------- config
-------- footer
-------- header
-------- log
-------- state
-------- ...
---- public_api.ts
-- ng-package.json <-- main entry point
-- package.json <-- main entry point
Run Code Online (Sandbox Code Playgroud)
现在这是我的问题:
前两个常量和函数按预期工作,因为它们不依赖于任何东西。
现在,当我想从@my/my-lib/lang
主要@my/my-lib
和反向导入某些内容时,我会收到对其自身的循环依赖警告。这对我来说首先听起来很合乎逻辑,因为 ng-packagr 不知道先构建哪个。
到目前为止我读到的是,每次都会首先构建辅助入口点,当我没有对@my/my-lib/lang
内部服务的依赖关系时@my/my-lib
,这将完美地工作,那么我如何设置它以便我可以从中导入内容@my/my-lib/lang
并@my/my-lib
反向导入内容?
根据我的经验,如果您使用 Angular CLI,则辅助入口点是在主入口点之后构建的。您可以拥有的唯一可能的引用是从辅助入口点引用主库。您只能在一个方向上再次在辅助入口点之间进行引用。在构建期间,将解析引用并确定辅助入口点的构建顺序,以便按照引用的顺序构建它们。
对于您的示例,您唯一可以做的就是从@my/my-lib
内部导入内容@my/my-lib/lang
,然后再@my/my-lib/lang
导入,例如@my/my-lib/types
.
导入应该是库而不是直接文件。
import { MainLibClass } from '@my/my-lib';
import { MyType} from '@my/my-lib/types';
Run Code Online (Sandbox Code Playgroud)
辅助入口点就像主库内的另一个独立库,它构建在主库之上,或者提供一些连接到主入口点的独立功能。这就是为什么像图书馆一样,你永远无法在两个方向上都有参考。
我不能说更多,因为你没有提供任何信息,为什么你需要参考资料才能双向进行。从我从您的设计中看到的情况来看,您最好为您现在已创建辅助入口点的每个部分创建单独的库。
归档时间: |
|
查看次数: |
12216 次 |
最近记录: |