将SvelteKit应用部署到Vercel时无法解析@Sveltejs/kit/install-fetch
解决SvelteKit部署Vercel时的"Could not resolve '@sveltejs/kit/install-fetch'"错误
错误详情
> Using @sveltejs/adapter-vercel ✘ [ERROR] Could not resolve "@sveltejs/kit/install-fetch" .svelte-kit/vercel-tmp/render/serverless.js:1:29: 1 │ import { installFetch } from '@sveltejs/kit/install-fetch'; ╵ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The path "./install-fetch" is not exported by package "@sveltejs/kit": node_modules/@sveltejs/kit/package.json:59:13: 59 │ "exports": { ╵ ^ You can mark the path "@sveltejs/kit/install-fetch" as external to exclude it from the bundle, which will remove this error. error during build: Error: Build failed with 1 error: .svelte-kit/vercel-tmp/render/serverless.js:1:29: ERROR: Could not resolve "@sveltejs/kit/install-fetch" at failureErrorWithLog (/vercel/path0/node_modules/esbuild/lib/main.js:1603:15) at /vercel/path0/node_modules/esbuild/lib/main.js:1249:28 at runOnEndCallbacks (/vercel/path0/node_modules/esbuild/lib/main.js:1162:65) at buildResponseToResult (/vercel/path0/node_modules/esbuild/lib/main.js:1247:7) at /vercel/path0/node_modules/esbuild/lib/main.js:1356:14 at /vercel/path0/node_modules/esbuild/lib/main.js:666:9 at handleIncomingPacket (/vercel/path0/node_modules/esbuild/lib/main.js:763:9) at Socket.readFromStdout (/vercel/path0/node_modules/esbuild/lib/main.js:632:7) at Socket.emit (node:events:527:28) at addChunk (node:internal/streams/readable:315:12) Error: Command "npm run build" exited with 1
本地运行npm run dev正常,更新SvelteKit版本前可正常部署到Vercel。
解决步骤
- 同步适配器与SvelteKit版本:
@sveltejs/adapter-vercel必须和@sveltejs/kit版本匹配,新版本SvelteKit已移除install-fetch导出路径,旧版适配器仍在引用该路径。执行命令更新两者到最新版:npm install @sveltejs/kit@latest @sveltejs/adapter-vercel@latest - 清理缓存与依赖:删除自动生成的缓存文件夹和旧依赖文件,重新安装确保依赖完整性:
rm -rf .svelte-kit node_modules package-lock.json npm install - 本地验证构建:先在本地执行构建命令,确认问题修复后再部署到Vercel:
npm run build - 检查Vercel构建配置:确保Vercel项目的构建命令设置为
npm run build,避免使用过时的自定义构建指令。
内容的提问来源于stack exchange,提问作者Nausika
相关产品推荐
相关产品推荐

