起因
今天用户有一个小需求,只需要修改几处地方。修改完成以后,通过jenkins构建到集测环境。最后发现,项目出大问题了-----页面不再切换,全部都拼接到了一个页面下。然而本地无问题。
解决过程
首先,检查了本次新增代码,虽然没有发现原因,但还是对代码进行了回滚,将本次新增的内容全部撤回。再次构建以后,问题仍然没有得到解决。
再次确定不是本次新增代码问题以后,我们将目标锁定到了‘页面不再切换,全部拼接到一个页面下’这一现象。并且发现,tab组件(antd组件)也发生错误。从而推断,可能是antd进行了某些更新。
于是,我开始查阅antd的更新日志。发现antd在9月4号进行了一次较大更新。
在这次更新中,对tab组件以及modal组件进行了较大变更。
同时,检查packge.json,我们的antd依赖是自动更新最新版本的。
每次构建,jenkins都会根据package.json重新下载依赖,所以下载到了最新的。而本地依赖未更新,所以没有问题。
到这里,我们就基本可以肯定是依赖问题。
解决方案
既然是依赖版本的问题,那么我就调整依赖版本。将版本设定为指定版本而非最新版本。到我们没有出问题为止,也就是上一个版本。所以我们调整为4.22.8
总结
依赖于某个项目,并且总是跟随该依赖的最新版本就很可能会出现我今天发生的问题。除非跟随更新进行修改,否则就无法继续使用新版的依赖。当然,依赖也可能会做有向下兼容,这时候就没有问题。