Svelte + Vite执行npm run build不生成public/dist文件夹问题
问题:执行
npm run build编译完成但未生成public/dist文件夹 执行npm run build时,终端显示所有编译工作已完成,但并未生成public或dist文件夹。使用npm run dev可以正常进行开发和预览操作,网上资料均表明只需执行该命令就能生成对应文件。
build命令输出日志:
npm run build > svlt-drag@0.0.1 build > vite build vite v4.1.4 building SSR bundle for production... ✓ 51 modules transformed. 5:06:18 PM [vite-plugin-svelte] ssr compile done. package files time avg svlt-drag 4 31.5ms 7.9ms @sveltejs/kit 1 13.1ms 13.1ms vite v4.1.4 building for production... ✓ 42 modules transformed. 5:06:19 PM [vite-plugin-svelte] dom compile done. package files time avg svlt-drag 5 62.0ms 12.4ms .svelte-kit/output/client/_app/version.json 0.03 kB .svelte-kit/output/client/vite-manifest.json 2.73 kB .svelte-kit/output/client/_app/immutable/assets/_layout.ed6dad0e.css 9.13 kB │ gzip: 2.48 kB .svelte-kit/output/client/_app/immutable/chunks/2.6b2094ff.js 0.08 kB │ gzip: 0.10 kB .svelte-kit/output/client/_app/immutable/chunks/1.4e7307ad.js 0.08 kB │ gzip: 0.10 kB .svelte-kit/output/client/_app/immutable/chunks/0.8c6f33b6.js 0.09 kB │ gzip: 0.10 kB .svelte-kit/output/client/_app/immutable/entry/_layout.svelte.733b317a.js 0.54 kB │ gzip: 0.36 kB .svelte-kit/output/client/_app/immutable/entry/error.svelte.8dbce21f.js 0.98 kB │ gzip: 0.57 kB .svelte-kit/output/client/_app/immutable/chunks/singletons.ccd991f9.js 2.65 kB │ gzip: 1.38 kB .svelte-kit/output/client/_app/immutable/entry/app.c122a3c5.js 5.61 kB │ gzip: 2.25 kB .svelte-kit/output/client/_app/immutable/entry/_page.svelte.68b65054.js 7.21 kB │ gzip: 3.02 kB .svelte-kit/output/client/_app/immutable/chunks/index.33c9bb49.js 7.72 kB │ gzip: 3.18 kB .svelte-kit/output/client/_app/immutable/entry/start.2b8c1d1f.js 23.16 kB │ gzip: 9.22 kB .svelte-kit/output/server/vite-manifest.json 1.43 kB .svelte-kit/output/server/_app/immutable/assets/_layout.ad198ccc.css 15.05 kB .svelte-kit/output/server/internal.js 0.19 kB .svelte-kit/output/server/entries/pages/_layout.svelte.js 0.25 kB .svelte-kit/output/server/entries/fallbacks/error.svelte.js 0.83 kB .svelte-kit/output/server/entries/pages/_page.svelte.js 2.54 kB .svelte-kit/output/server/chunks/index.js 3.68 kB .svelte-kit/output/server/chunks/internal.js 5.09 kB .svelte-kit/output/server/index.js 85.12 kB Run npm run preview to preview your production build locally. > Using @sveltejs/adapter-auto 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 ✔ done
解决办法
从日志里的Could not detect a supported production environment提示就能找到问题根源:你使用的@sveltejs/adapter-auto适配器无法识别当前的部署环境,因此没有生成可直接部署的public/dist目录,编译产物暂时存放在.svelte-kit/output这个中间目录里。
安装对应适配器
根据你的部署目标选择安装对应的适配器:- 静态托管(如Nginx、静态CDN):
npm install @sveltejs/adapter-static --save-dev - Node.js服务器部署:
npm install @sveltejs/adapter-node --save-dev
- 静态托管(如Nginx、静态CDN):
修改配置文件
打开项目根目录的svelte.config.js,替换原适配器配置:
以静态适配器为例,配置可指定输出目录为dist:import adapter from '@sveltejs/adapter-static'; import { vitePreprocess } from '@sveltejs/kit/vite'; /** @type {import('@sveltejs/kit').Config} */ const config = { preprocess: vitePreprocess(), kit: { adapter: adapter({ pages: 'dist', assets: 'dist', fallback: null }) } }; export default config;重新执行构建
再次运行npm run build,此时就会生成你指定的输出目录(如dist)。
内容的提问来源于stack exchange,提问作者Cory Schulz
相关产品推荐
相关产品推荐

