Vite/SvelteKit构建时保留旧打包文件的配置方法咨询
Vite(SvelteKit)构建保留旧哈希文件的实现方案
Vite默认构建时会清空输出目录、删除旧哈希文件,但可以通过以下两种方式实现保留旧文件的需求:
方法一:关闭Vite自动清理输出目录
在项目根目录的vite.config.js(或vite.config.ts)中,将build.emptyOutDir配置设为false,禁止Vite在构建前删除输出目录内容:
import { sveltekit } from '@sveltejs/kit/vite'; import { defineConfig } from 'vite'; export default defineConfig({ plugins: [sveltekit()], build: { emptyOutDir: false } });
设置后,每次执行vite build或npm run build时,新生成的哈希文件会直接追加到输出目录,旧文件不会被删除。注意定期清理过期的旧文件,避免目录体积持续膨胀。
方法二:自定义构建脚本实现精细控制
如果需要更灵活的文件管理(比如只保留最近几个版本),可以编写自定义构建脚本,先备份旧文件再执行构建:
- 在
package.json的scripts中添加自定义命令:
{ "scripts": { "build:retain": "mkdir -p build-temp && cp -r build/client/_app/immutable/** build-temp/ && vite build && cp -r build-temp/** build/client/_app/immutable/ && rm -rf build-temp" } }
- 执行构建时使用
npm run build:retain,脚本会先备份旧哈希文件,构建完成后再将备份文件移回输出目录。
效果验证
- 第一次构建后,输出目录包含
_page.svelte-8f3ed184.js - 修改
+page.svelte后执行第二次构建,输出目录会同时保留_page.svelte-8f3ed184.js和_page.svelte-9j2dus3s.js,符合预期。
内容的提问来源于stack exchange,提问作者Patrick Nomad
相关产品推荐
相关产品推荐

