删除未使用的角度模块依赖性(进口和提供商)



假设我有SharedComponents模块。在此模块中,有一个SomeView组件。该组件使用DirectivesModule指令SomeDirective。我有这样的东西:

@NgModule({
  imports: [DirectivesModule, ...],
  declarations: [SomeView, ...],
  ...
})

然后,我需要将SomeView移至其他模块。这留下了我:

@NgModule({
  imports: [DirectivesModule, ...],
  declarations: [...],
  ...
})

没有其他声明的元素使用DirectivesModule。它不再需要,所以我想将其删除。但是我不能说如果不研究其他所有声明,就可以安全地删除。

所以我的问题是:有没有办法找到给定的模块导入或提供商可以安全删除?在我正在进行的项目中,一个模块可以加载其他二十个,保持清洁确实是很艰巨的任务。

所以我的问题是:有没有办法找到给定的模块导入或提供商可以安全删除?在我正在进行的项目中,一个模块可以加载二十个,保持清洁确实是艰巨的任务。

单元测试是唯一已知的验证可以安全删除模块的方法。解释为什么Angular无法自我检测模块的用法相当复杂,但请记住,模块可以向前一个内部模块。因此,一个模块可能具有许多儿童模块的出口。通过injector.get(myService)可以在运行时解决提供商,这使这变得更加困难。这使得很难找到用法,因为通过查看使用哪种喷油器的源代码无法了解。

如果您的单元测试最少可以验证一个组件,那么您会知道是否要删除模块断路单元测试。

最新更新