问题描述
昨天生产环境突然出现echarts的组件调用失败的情况。排查后发现,那部分组件的代码在加载的时候抛出series.tree is not exit.Load it first的异常
问题出现的环境背景及自己尝试过哪些方法
在排查问题的时候发现,在版本分支上旧版本的git仓库中,echarts/lib/chart/tree的目录都“不见了”,另外每个版本中echarts/index.js中require("./lib/chart/tree")的代码都“不见了”,直接添加后发现,关于tree组件初始化的参数丢失了,该env参数存在的文件多达40多个
对于series.tree is not exit.Load it first的异常通过网上的一些建议:
1、修改import 直接导入"echarts"(本来就是)
2、分开导入组件
3、查看series的参数
上述方法都没有效果
4、用最新的echarts进行覆盖(问题解决)
可是这问题很神奇啊
神奇的地方:
为什么突然关于这个被调用的组件会被底层会被统一修改?
新版本代码上线旧版本的该部分代码居然也会受影响?
不同开发环境的服务器部分有受到影响
内网开发的情况下,只能通过覆盖去修复代码也太不友好了
相关代码
下面是部分echarts/index.js的部分代码
require("./lib/component/dataset");
require("./lib/chart/line");
require("./lib/chart/bar");
require("./lib/chart/pie");
require("./lib/chart/scatter");
require("./lib/chart/radar");
require("./lib/chart/map");
下面这行丢失了
require("./lib/chart/tree");
require("./lib/chart/treemap");
require("./lib/chart/graph");
require("./lib/chart/gauge");
require("./lib/chart/funnel");
require("./lib/chart/parallel");
require("./lib/chart/sankey");
require("./lib/chart/boxplot");
你期待的结果是什么?实际看到的错误信息又是什么?
什么条件会触发这种情况的发生?
下面的异常的照片
我觉得只能用凌晨三点有黑影偷偷摸摸的打开电脑删掉这行传git库来回答了。
可能是你们公司谁处理冲突的时候误操作了吧。