You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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时,新生成的哈希文件会直接追加到输出目录,旧文件不会被删除。注意定期清理过期的旧文件,避免目录体积持续膨胀。

方法二:自定义构建脚本实现精细控制

如果需要更灵活的文件管理(比如只保留最近几个版本),可以编写自定义构建脚本,先备份旧文件再执行构建:

  1. 在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"
  }
}
  1. 执行构建时使用npm run build:retain,脚本会先备份旧哈希文件,构建完成后再将备份文件移回输出目录。

效果验证

  • 第一次构建后,输出目录包含_page.svelte-8f3ed184.js
  • 修改+page.svelte后执行第二次构建,输出目录会同时保留_page.svelte-8f3ed184.js和_page.svelte-9j2dus3s.js,符合预期。

内容的提问来源于stack exchange,提问作者Patrick Nomad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 06:35:36