代码影响范围评估解决方案

3,346 阅读2分钟

前言

想必大家在工作中或多或少都会遇到这样的问题。

例如,你修改了A文件。测试没问题,开开心心的提交了代码,结果了一会一个bug单提了过来。某某功能怎么出问题了。这时你发现正是你修改的A文件导致的问题。原来A文件被其他文件所依赖了。而你并没有测试那些被依赖的文件是否正常。这种情况在你接手别人的代码时,尤为突出,改个代码都胆战心惊的,生怕改出其他问题来。

下面介绍的这个工具可以一定程度上缓解这样的问题。

工具地址

github : github.com/shimingw/co…

npm : www.npmjs.com/package/cov…

实现思路

  1. 使用babel,从入口文件开始,进行依赖分析,读取文件描述以及依赖的其他文件,递归执行。导出依赖树
  2. 使用git diff获取所有修改以及新增的文件
  3. 结合依赖树依次分析每个文件
  4. 生成每个文件的依赖视图

根据依赖视图的话,就可以看到每个修改过的文件,在哪些地方被依赖了。从而帮助你对该文件的影响范围有一个更清楚的认识。

总结

这个工具的话目前只能根据importimport()这两种方式进行依赖分析,后续会增加对requirerequire.ensure的支持。但是尽管这样的话,其实还是无法对所有依赖都能检测出来,比如对全局下挂载的对象的依赖关系、vuex的依赖关系、vue注册的全局组件的依赖关系、redux的依赖关系。这种依赖关系分析起来相对复杂,目前还不支持。