Dul*_*nga 9 warnings circular-dependency angular-cli angular
https://github.com/angular/angular-cli/pull/6813添加了关于循环依赖项的警告,我知道我可以使用“ showCircularDependencies”关闭所有警告:false。但是我宁愿保持循环依赖警告。有没有一种模式可以让我修复下面的用例,还是有一种方法可以专门禁用特定文件上的循环依赖插件?
最简单的情况是,如果我有3个文件:
表格模型
import { CustomModel } from './custom.model';
import { CustomForm } from './custom.form';
export class Forms {
items: CustomForm[] = [];
public constructor(models?: CustomModel[]) {
models.forEach(model => this.items.push(new CustomForm(model)));
}
}
Run Code Online (Sandbox Code Playgroud)
custom.model.ts
export class CustomModel {
nestedModels: CustomModel[];
}
Run Code Online (Sandbox Code Playgroud)
custom.form.ts
import { Forms } from './forms.model';
import { CustomModel } from './custom.model';
export class CustomForm {
nestedForms: Forms;
constructor(model: CustomModel) {
this.nestedForms = new Forms(model.nestedModels);
}
}
Run Code Online (Sandbox Code Playgroud)
这将导致以下警告:
WARNING in Circular dependency detected:
src\app\models\custom.form.ts -> src\app\models\forms.model.ts -> src\app\models\custom.form.ts
WARNING in Circular dependency detected:
src\app\models\forms.model.ts -> src\app\models\custom.form.ts -> src\app\models\forms.model.ts
Run Code Online (Sandbox Code Playgroud)
在我的实际应用中,由于这种模式,大约有20-30条警告。我认为底层插件https://github.com/aackerman/circular-dependency-plugin支持排除模式,但是我不确定是否有办法通过angular-cli使用它。
问题很明显:
您正在使用custom.model.ts成custom.form.ts
而且custom.form.ts进入custom.model.ts,
这被称为CircularDependencies,那不好。
解决方案:
只需import { CustomForm } from './custom.form';从custom.model.ts
您可以将 forms.model.ts 和 custom.form.ts 的代码放在同一个文件中,这将消除循环依赖。