Cesium 1.120 升级踩坑记:@zip.js/zip.js 版本冲突问题解决
问题描述
近期我们将项目中的 Cesium 从旧版本升级至 Cesium 1.120,但在启动开发服务器时,控制台抛出如下错误:
Could not resolve './lib/zip-no-worker.js' from @zip.js/zip.js
经过排查,问题根源在于 Cesium 1.120 引入了对 @zip.js/zip.js 的依赖,用于处理 KML 文件中的 ZIP 压缩资源。然而,该版本并未锁定 @zip.js/zip.js 的具体版本,导致安装时可能拉取到不兼容的高版本(如 v2.8.x),从而引发模块解析失败。
cesium升级到1.120版本,代码跑不起来,@zip.js/zip.js报错,
cesium 1.120版本依赖@zip.js,安装cesium后依赖中会自动安装zip.js依赖,但是由于安装的zip.js版本不对导致报错,可以手动安装正确的版本2.7.34,并且在package.json中添加一直统一zip.js版本
部分情况下,@cesium/engine 会自带 node_modules,建议在构建前手动删除
解决方案:强制统一依赖版本
使用 resolutions 锁定版本
- 修改 package.json
{
"dependencies": {
"cesium": "^1.120.0",
"@zip.js/zip.js": "2.7.34"
},
"resolutions": {
"@zip.js/zip.js": "2.7.34"
}
}
注意:resolutions 是 Yarn 的特性,如果你使用的是 npm,请确保版本 ≥ 8.3 并使用 overrides:
- 清理并重新安装依赖
# 删除 node_modules 和 lock 文件
rm -rf node_modules package-lock.json yarn.lock
# 重新安装
yarn install
# 或 npm install

734

被折叠的 条评论
为什么被折叠?



