nodejs 22安装cesium1.126.0后运行报错了
Missing "./lib/zip-no-worker.js" specifier in "@zip.js/zip.js" package [plugin vite:dep-pre-bundle]
node_modules/.pnpm/@cesium+engine@14.0.0/node_modules/@cesium/engine/Source/DataSources/exportKml.js:23:21:
23 │ import * as zip from "@zip.js/zip.js/lib/zip-no-worker.js";
╵ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This error came from the "onResolve" callback registered here:
node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main.js:1292:20:
1292 │ let promise = setup({
╵ ^
at setup (file:///Users/zhaowanjun/Downloads/252_wushui_vue3/node_modules/.pnpm/vite@4.5.14_@types+node@24.10.1_sass@1.94.2_terser@5.44.1/node_modules/vite/dist/node/chunks/dep-827b23df.js:39957:19)
at handlePlugins (/Users/zhaowanjun/Downloads/252_wushui_vue3/node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main.js:1292:21)
at buildOrContextImpl (/Users/zhaowanjun/Downloads/252_wushui_vue3/node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main.js:978:5)
at Object.buildOrContext (/Users/zhaowanjun/Downloads/252_wushui_vue3/node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main.js:786:5)
at /Users/zhaowanjun/Downloads/252_wushui_vue3/node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main.js:2186:68
at new Promise (<anonymous>)
at Object.context (/Users/zhaowanjun/Downloads/252_wushui_vue3/node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main.js:2186:27)
at Object.context (/Users/zhaowanjun/Downloads/252_wushui_vue3/node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main.js:2026:58)
at prepareEsbuildOptimizerRun (file:///Users/zhaowanjun/Downloads/252_wushui_vue3/node_modules/.pnpm/vite@4.5.14_@types+node@24.10.1_sass@1.94.2_terser@5.44.1/node_modules/vite/dist/node/chunks/dep-827b23df.js:46045:35)
✘ [ERROR] Missing "./lib/zip-no-worker.js" specifier in "@zip.js/zip.js" package [plugin vite:dep-pre-bundle]
node_modules/.pnpm/@cesium+engine@14.0.0/node_modules/@cesium/engine/Source/DataSources/KmlDataSource.js:45:21:
45 │ import * as zip from "@zip.js/zip.js/lib/zip-no-worker.js";
解决办法
安装:
pnpm add -D patch-package postinstall-postinstallpackage.json增加:"scripts": { "postinstall": "patch-package" }手动改 node_modules 里这两个文件:
node_modules/@cesium/engine/Source/DataSources/exportKml.jsnode_modules/@cesium/engine/Source/DataSources/KmlDataSource.js
把:
import * as zip from "@zip.js/zip.js/lib/zip-no-worker.js";改成:
import * as zip from "@zip.js/zip.js";改完之后执行一次:
npx patch-package @cesium/engine
这样以后你无论 Node 版本、@zip.js/zip.js 版本如何,这两处 import 都会被改为新写法,Vite 不会再报 Missing "./lib/zip-no-worker.js" specifier。
依赖中增加@cesium/engine
"@cesium/engine": "14.0.0"
{
"name": "chengzhenwushui",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"build-qiniu": "vite build && node ./qiniu.js",
"preview": "vite preview",
"postinstall": "patch-package"
},
"dependencies": {
"@meruem117/vue-seamless-scroll": "^0.1.8",
"@turf/turf": "^7.2.0",
"@vue/shared": "^3.2.47",
"amfe-flexible": "^2.2.1",
"autoprefixer": "^10.4.13",
"axios": "^1.3.4",
"cesium": "1.126.0",
"dayjs": "^1.11.9",
"disable-devtool": "^0.3.7",
"echarts": "^5.2.0",
"element-plus": "^2.9.5",
"fs": "0.0.1-security",
"gsap": "^3.11.4",
"postcss": "^8.4.21",
"postcss-loader": "^7.0.2",
"postcss-pxtorem": "^6.0.0",
"qiniu": "^7.8.0",
"relation-graph": "^2.2.10",
"sass": "^1.57.1",
"sass-loader": "^13.2.0",
"style-loader": "^3.3.1",
"vite-plugin-cesium": "github:yelingkong/vite-plugin-cesium",
"vite-plugin-compression": "^0.5.1",
"vue": "^3.2.45",
"vue-router": "^4.1.6",
"wow.js": "^1.2.2",
"@cesium/engine": "14.0.0"
},
"devDependencies": {
"@vitejs/plugin-vue": "^4.0.0",
"patch-package": "^8.0.1",
"postinstall-postinstall": "^2.1.0",
"vite": "^4.0.0"
}
}