一个老项目中用到了 leaflet 这个地图操作库,最近项目升级,需要使用 supermap,于是安装 @supermap/iclient-leaflet(依赖 leaflet),然后程序报错。
经检查,发现原始安装的 leaflet 版本为 1.5.1,而 iclient-leaflet 依赖 1.7.1,造成程序中同时引用了2个不同版本的 leaflet 导致错误,于是升级 leaflet 至 1.7.1。
一切就绪,run——错误依旧,无语.jpg。
继续排查,发现 npm 居然会重复安装 leaflet 1.7.1:通过 npm list leaflet
查看其依赖树为:
+-- @supermap/[email protected] | `-- [email protected] (此处重复) +-- [email protected] | `-- [email protected] | `-- [email protected] deduped `-- [email protected]
于是通过 npm ddp
(或 npm dedupe
) 清理重复依赖,问题解决。