【发布时间】:2021-11-23 17:54:59
【问题描述】:
编辑
似乎只有在使用生产构建时才会弹出循环依赖 - ng build lib --prod
我正在生成一个 Angular 库以用于不同的 Angular 项目。但是,在编译代码时,我在其中一个桶中收到了循环依赖警告。这是我的代码:
modal.controller.ts
import { BackdropController } from './backdrop-controller';
export class ModalController {
...
}
免责声明:BackdropController 不导入 ModalController 或 Barrel (index.controller.ts)
index.controllers.ts
export * from './backdrop-controller';
export * from './modal-controller';
现在上面的代码对我来说似乎是正确的。 ModalController 仅直接导入 BackdropController 而不是从桶中导入任何内容。从 Angular 应用程序的角度来看,我会说这是绝对正确的,并且不会产生循环依赖。
但是!在构建项目时,我确实得到了循环依赖。如果构建文件与此类似,则输出(简化):
index.controller.js
export * from './backdrop.controller';
export * from './modal.controller';
modal.controller.js
import { BackdropController } from '../backdrop/backdrop.controller';
import * as i0 from '@angular/core';
import * as i1 from '../_index';
export class ModalController {
...
}
new i1.ModalController(...)
编译代码中的问题似乎是模块构建。在第 3 行,将桶导入为 import * as i1 from '../_index',然后将 ModalController 添加到模块 i1 最后 - import * as i1 from '../_index'
有没有办法修复这种只在构建代码时出现的循环依赖?
【问题讨论】:
-
你找到解决办法了吗?我也遇到过同样的问题...
标签: angular circular-dependency angular-library