You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决React构建应用中mapbox-gl包重复打包问题?

重复打包mapbox-gl导致包体积过大的解决办法

问题背景

我有一个React组件库,依赖mapbox-gl@^2.8.2,其package.json的依赖配置如下:

"dependencies": {
    "mapbox-gl": "^2.8.2",
}

在基于React和Vite构建的Web应用中引入该组件库后,发现应用自身也依赖mapbox-gl@2.14.1,依赖配置如下:

"dependencies": {
    "mapbox-gl": "2.14.1",
}

构建应用后,最终产物中存在两个版本的mapbox-gl,导致包体积大幅增加。二者主版本相同,不存在破坏性变更,我尝试过使用peerDependencies但包体积没有变化,需要找到让它们共用同一版本以避免重复打包的方法。

解决方案

在Web应用的package.json中添加版本锁定配置,强制组件库使用应用的mapbox-gl版本:

使用Yarn或pnpm时

添加resolutions字段:

"resolutions": {
    "mapbox-gl": "2.14.1",
}

使用npm时

用overrides替代resolutions:

"overrides": {
    "mapbox-gl": "2.14.1",
}

内容的提问来源于stack exchange,提问作者João Oliveira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 09:57:38