使用Echarts的Vue项目打包发布Github出现读不到‘regions’导致地图无法正常显示的问题

网上关于使用echarts的项目打包地图无法正常显示的问题有好几个帖子。。。但是都不太管用。。中间都是记录过程碎碎念,想看结论直接跳最后。

由于Echarts 5..0开始把自己的地图数据全部阉割了。。。所以单独下载手动复制到了相同位置,然后引入。结果HB里运行到浏览器可正常显示,但是打包后部署到github pages无法显示地图,其他图表正常(现在回头想运行到浏览器是不是也是build过的,感觉没理解透彻机制,走了很多弯路)。于是觉得是build过程出了问题。

根据查到的相关信息,矛头都是指向echarts版本导致的问题,于是先降版本,结果词云又挂了,其他图表样式也一塌糊涂,于是又换会5.4版本。

1. 当时想法就是打包过程中把放在依赖文件夹下面的hunan.js忽略了,于是先参考一个帖子在echarts依赖文件夹的package.json中的sideEffects里面把这个js写进去,这样大概编译就不会把这个本身新版本不存在的js忽略掉。。。无效

2. 然后尝试双版本,同时装4和5版本的echarts依赖,然后地图单独使用4版本,无效。。。

3. 发现解决不了问题,尝试把js放到本地,但是本地js不知道什么情况,引入的js一直没法读全局的echarts依赖,于是换个思路把js里面的数据单独拿出来弄个json,然后把registermap给单独写出来,然后这里又出现了经典的没读数据就初始化图表问题,然后又重整了异步数据读取结构。最终依旧倒在打包后发布github上看不到。。。无效

4.后来发现一直打包发布非常类,于是寻找本地直接预览打包的方法,试了三四个方法都不管用,最后用了vs code的live server总算能够本地预览了,然后还是读不到一些静态资源,发现是项目的publicpath除了点问题,之前改了忘记改回来了。。同时为了确定数据哪里出问题了,把json直接数据复制到了echarts图表代码里,结果发现本地预览打包能看见,换回正常get读取json好像又出问题了,这里忘了是什么问题了。。。反正试了几个单独引入map或者换成把registermap的参数结构按照官方手册整成{geoJson: xxxx}之类的方法,试了好多个,忘记那步给解决了。。。感觉自己能行了,兴冲冲发布到github,扑街。。。无效

5. 此时大概已经定位到了是github上传时候出了问题,但是一开始总觉得是push时候出了问题,就从push过程中弹的文字找线索,觉得问题出在delta 压缩上,但是没找到能关掉这个功能的参数,于是删光了了gh-pages分支的所有文件,重新用upload直接上传文件而不是push,还是无效。。。

6.这里快绝望了,天无绝人之路,在第n次手动在github中run build gh-pages过程中,发现下面有条黄字说现在github提倡大家使用node16.。。。就感觉没事就试试呗。。。然后开始升级node,然后更新项目的依赖,这里过程中坑巨多,就不一一细说了,会弹一个gyp err,总之升级+改了项目的sass和loader的版本又重新升级gyp之后,总算是项目的依赖全部根据node16版本重新install了,然后还是解决了一些小问题,基本是可查的就不说了。。。

然后; 成了!兄弟!

结论:项目换node16,github现在自己编译是基于node16的,跟node12/14的项目在编译后某些包(比如这个echarts的map)会出现一些参数对不上导致功能出问题,最终会出现本地能看,github看不了的情况。。。返回参数 cannot read properties of' 'regions'这种莫名其妙很难定位问题的报错。。。总之node升级16+再项目整体重新装依赖就解决了。。。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值