假设我有SharedComponents
模块。在此模块中,有一个SomeView
组件。该组件使用DirectivesModule
指令SomeDirective
。我有这样的东西:
@NgModule({
imports: [DirectivesModule, ...],
declarations: [SomeView, ...],
...
})
然后,我需要将SomeView
移至其他模块。这留下了我:
@NgModule({
imports: [DirectivesModule, ...],
declarations: [...],
...
})
没有其他声明的元素使用DirectivesModule
。它不再需要,所以我想将其删除。但是我不能说如果不研究其他所有声明,就可以安全地删除。
所以我的问题是:有没有办法找到给定的模块导入或提供商可以安全删除?在我正在进行的项目中,一个模块可以加载其他二十个,保持清洁确实是很艰巨的任务。
所以我的问题是:有没有办法找到给定的模块导入或提供商可以安全删除?在我正在进行的项目中,一个模块可以加载二十个,保持清洁确实是艰巨的任务。
单元测试是唯一已知的验证可以安全删除模块的方法。解释为什么Angular无法自我检测模块的用法相当复杂,但请记住,模块可以向前一个内部模块。因此,一个模块可能具有许多儿童模块的出口。通过injector.get(myService)
可以在运行时解决提供商,这使这变得更加困难。这使得很难找到用法,因为通过查看使用哪种喷油器的源代码无法了解。
如果您的单元测试最少可以验证一个组件,那么您会知道是否要删除模块断路单元测试。