使用adapter-auto部署SvelteKit到Fleek遇环境检测错误求助
部署SvelteKit应用到Fleek平台时,使用@sveltejs/adapter-auto遇到以下错误:
2:02:38 PM 03/01/2023: > Using @sveltejs/adapter-auto
2:02:38 PM 03/01/2023: Could not detect a supported production environment. See https://kit.svelte.dev/docs/adapters to learn how to configure your app to run on the platform of your choosing
2:02:38 PM 03/01/2023: ✔ done
2:02:39 PM 03/01/2023: An error occured during upload: Public directory does not exist.
2:03:03 PM 03/01/2023: Error occured during the upload.
当前svelte.config.js配置:
import adapter from '@sveltejs/adapter-auto'; import { vitePreprocess } from '@sveltejs/kit/vite'; /** @type {import('@sveltejs/kit').Config} */ const config = { kit: { adapter: adapter() }, preprocess: vitePreprocess() }; export default config;
尝试过官方文档推荐的其他适配器但无效,不确定该选用哪款适配器,是否需要自行编写?
选用适配静态站点的适配器
Fleek主打静态站点部署,直接用@sveltejs/adapter-static即可,它会生成纯静态的HTML/CSS/JS文件,完美适配Fleek的部署逻辑,无需自行编写适配器。安装并配置适配器
- 安装依赖:
npm install @sveltejs/adapter-static --save-dev- 修改
svelte.config.js:
import adapter from '@sveltejs/adapter-static'; import { vitePreprocess } from '@sveltejs/kit/vite'; /** @type {import('@sveltejs/kit').Config} */ const config = { kit: { adapter: adapter({ pages: 'build', assets: 'build', fallback: undefined, precompress: false, strict: true }) }, preprocess: vitePreprocess() }; export default config;- 在
src/routes目录下新增+layout.js(或+layout.server.js),添加静态渲染配置:
export const prerender = true;调整Fleek部署参数
在Fleek项目设置中,将构建命令设为npm run build,输出目录设为build(和适配器配置的输出目录保持一致)。本地验证
先执行npm run build,检查项目根目录是否生成了build文件夹且内部包含静态文件,确认无误后再触发Fleek的部署流程。
内容的提问来源于stack exchange,提问作者Nino Keldishvili

