SvelteKit项目构建失败无法部署Firebase:目录非空错误
SvelteKit构建失败(ENOTEMPTY错误)排查方案
问题重现
部署SvelteKit应用到Firebase时,执行npm run build触发报错:
[vite-plugin-sveltekit-setup] ENOTEMPTY: directory not empty, rmdir '\?\C:\Users\User\my-CV.svelte-kit\output\server\chunks' error during build:
项目package.json配置如下:
{ "name": "my-cv", "version": "0.0.1", "scripts": { "dev": "vite dev", "build": "vite build", "preview": "vite preview", "check": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch" }, "devDependencies": { "@fontsource/fira-mono": "^4.5.10", "@neoconfetti/svelte": "^1.0.0", "@sveltejs/adapter-auto": "^1.0.1", "@sveltejs/adapter-node": "^1.0.0-next.106", "@sveltejs/adapter-static": "^1.0.5", "@sveltejs/kit": "^1.0.0", "@tsconfig/svelte": "^3.0.0", "@types/cookie": "^0.5.1", "autoprefixer": "^10.4.13", "postcss": "^8.4.20", "svelte": "^3.54.0", "svelte-adapter-firebase": "^0.14.4", "svelte-check": "^2.10.3", "svelte-preprocess": "^5.0.0", "tailwindcss": "^3.2.4", "typescript": "^4.9.4", "vite": "^4.0.0" }, "type": "module", "dependencies": { "@rodneylab/svelte-social-icons": "^0.0.24", "firebase-tools": "^11.21.0" } }
解决步骤
手动清理构建缓存
直接删除项目根目录下的.svelte-kit文件夹,这个目录是SvelteKit的临时构建产物目录,残留文件会导致构建时无法正常删除子目录。删除后重新执行npm run build。给构建脚本加前置清理
避免每次手动删目录,可以修改package.json的build脚本,在构建前自动清理缓存:// Windows环境 "scripts": { "build": "rd /s /q .svelte-kit && vite build", // 其他脚本保持不变 }// macOS/Linux环境 "scripts": { "build": "rm -rf .svelte-kit && vite build", // 其他脚本保持不变 }精简适配器依赖
你的项目同时安装了adapter-auto、adapter-node、adapter-static和svelte-adapter-firebase多个适配器,可能导致构建逻辑冲突。建议只保留svelte-adapter-firebase,卸载其他适配器:npm uninstall @sveltejs/adapter-auto @sveltejs/adapter-node @sveltejs/adapter-static更新依赖版本
当前svelte-adapter-firebase(0.14.4)和@sveltejs/kit(1.0.0)可能存在版本兼容问题,尝试更新到最新稳定版:npm update svelte-adapter-firebase @sveltejs/kit vite
内容的提问来源于stack exchange,提问作者Helmar Bachle
相关产品推荐
相关产品推荐

