从零创建Svelte项目执行build后,找不到./public文件夹问题咨询
关于SvelteKit构建产物的问题解答
1. 是否遗漏了步骤?
是的,你漏了**安装并配置适配器(Adapter)**这一步。用npm create svelte@latest创建的是SvelteKit项目(而非传统的单页Svelte应用),它默认不会直接生成可部署的静态文件到public或根目录下的其他文件夹——必须通过适配器来将.svelte-kit里的中间产物转换为对应部署环境的可运行文件。
2. 操作是否有误?
操作本身没有错误,但你对SvelteKit的构建逻辑有误解:
- 传统Svelte单页应用构建后确实会把产物放到
public文件夹,但SvelteKit是全栈框架,默认构建只会生成中间产物到.svelte-kit目录,这部分文件不是直接用来部署的。 - 你找不到包含
index.html和app.js的目录,正是因为没有适配器完成最终的产物转换。
3. 是否需要给build命令添加额外参数?
不需要给npm run build加额外参数,但需要完成以下配置:
- 首先安装适合你部署场景的适配器,比如要生成静态文件,就安装静态适配器:
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 = { preprocess: vitePreprocess(), kit: { adapter: adapter({ // 可选配置,比如指定输出目录,默认是build文件夹 pages: 'build', assets: 'build', fallback: undefined, precompress: false }) } }; export default config; - 再次执行
npm run build,就能在build文件夹里找到包含index.html和对应JS/CSS资源的可部署文件了。
内容的提问来源于stack exchange,提问作者Serge Hulne
相关产品推荐
相关产品推荐

