SvelteKit使用adapter-static构建时提示‘未指定适配器’求助
SvelteKit现有项目配置adapter-static后构建提示“No adapter specified”问题解决
在现有SvelteKit项目中配置@sveltejs/adapter-static静态站点适配器时,执行npm run build始终提示“No adapter specified”。用npx sv create my-app创建的极简新项目配置相同适配器后可正常构建,现有项目中已在svelte.config.ts和vite.config.ts添加console.log语句,但构建时仅输出vite配置日志,推测Vite未加载包含适配器配置的svelte.config.ts。尝试复制新项目的package.json依赖版本也无法解决问题。
配置文件
svelte.config.ts
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; import adapter from '@sveltejs/adapter-static'; /** @type {import('@sveltejs/kit').Config} */ const config = { preprocess: [vitePreprocess({ script: true })], kit: { adapter: adapter(), prerender: { entries: ['*'] } } }; export default config;
vite.config.ts
import { sveltekit } from '@sveltejs/kit/vite'; import { defineConfig } from 'vitest/config'; export default defineConfig({ plugins: [sveltekit()], build: { target: 'esnext', }, test: { include: ['src/**/*.{test,spec}.{js,ts}'] } });
package.json依赖片段
... "devDependencies": { "@playwright/test": "^1.28.1", "@skeletonlabs/skeleton": "^2.10.3", "@skeletonlabs/tw-plugin": "^0.4.0", "@sveltejs/adapter-auto": "^3.3.1", "@sveltejs/adapter-static": "^3.0.8", "@sveltejs/kit": "^2.7.4", "@sveltejs/vite-plugin-svelte": "^4.0.0", "@tailwindcss/forms": "^0.5.10", "@types/d3-scale": "^4.0.8", "@types/eslint": "^8.56.0", "@types/node": "^20.12.7", "@typescript-eslint/eslint-plugin": "^7.0.0", "@typescript-eslint/parser": "^7.0.0", "autoprefixer": "^10.4.16", "chart.js": "^4.0.0", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-svelte": "^2.46.0", "postcss": "^8.4.32", "postcss-load-config": "^5.0.2", "prettier": "^3.1.1", "prettier-plugin-svelte": "^3.2.7", "prettier-plugin-tailwindcss": "^0.5.9", "svelte": "^5", "svelte-check": "^3.6.0", "svelte-preprocess": "^6.0.3", "svelte-transition": "^0.0.17", "tailwindcss": "^3.3.6", "tslib": "^2.4.1", "typescript": "^5.0.0", "vite": "^5.4.10", "vitest": "^1.2.0" }, "type": "module", "dependencies": { "chartjs-adapter-date-fns": "^3.0.0", "chartjs-plugin-datalabels": "^2.2.0", "compute-covariance": "^1.0.1", "d3": "^7.9.0", "d3-scale": "^4.0.2", "firebase": "^11.2.0", "mathjs": "^14.0.1", "ts-node": "^10.9.2" } ...
解决办法
- 检查配置文件位置:确保
svelte.config.ts在项目根目录,Vite默认从根目录加载该文件,若放在子目录会导致无法识别。 - 简化配置测试:暂时删除配置中的类型注释和额外选项,使用最简配置验证是否能加载:
import adapter from '@sveltejs/adapter-static'; import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; export default { preprocess: vitePreprocess(), kit: { adapter: adapter() } }; - 清理依赖与缓存:
- 删除
node_modules、package-lock.json文件 - 执行
npm install重新安装依赖 - 运行
npx vite clear清理Vite缓存
- 删除
- 修复版本兼容性:你的项目中
svelte版本为^5,但@sveltejs/kit@2.x仅适配Svelte 4,Svelte 5处于测试阶段存在兼容性问题。降级Svelte版本:npm install svelte@^4.2.0 --save-dev - 验证Vite插件配置:确保
vite.config.ts中的sveltekit()插件没有手动指定错误的svelte配置路径,避免覆盖默认加载逻辑。
内容的提问来源于stack exchange,提问作者ROODAY
相关产品推荐
相关产品推荐

