Cache continuously invalidated with dynamic inputs
Maintainers usually reply within 1 day
@wan9chi is already working on this.
Since Aug 21, 2026.
Assessment
This issue has not been assessed yet.
Description
Describe the bug
given a vite.config.ts that looks roughly like this:
export default defineConfig(({command, mode}) => {
// used by some vite plugin as a temporary directory
const tempDir = `tmp/${mode === "production" ? "prod" : "dev"}`;
return {
run: {
tasks: {
build: {
command: "vp build",
cache: true,
input: [
{auto: true},
`!${tempDir}/**`,
],
output: [
{auto: true},
`!${tempDir}/**`,
],
}
}
},
// rest of vite config
};
});
that is, when run in the production mode the input/output arrays are [{auto: true}, '!tmp/prod/**'], and when run in the development mode the input/output arrays are [{auto: true}, '!tmp/dev/**'].
if you run it the first time with --mode development, it will be a miss and will be properly added to the cache so subsequent runs with --mode development are cache hits.
however, if you then run it with --mode production, it will be a cache miss but it won't get properly added to the cache, so all subsequent calls with --mode production will also be cache misses.
you will get something along the lines of this:
$ pnpm vp run --verbose build --mode development
$ vp build --mode development ○ cache miss: 'vite.config.ts' modified, executing
[...]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Vite+ Task Runner • Execution Summary
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Statistics: 1 tasks • 0 cache hits • 1 cache misses
Performance: 0% cache hit rate
Task Details:
────────────────────────────────────────────────
[1] [redacted]#build: $ vp build --mode development ✓
→ Cache miss: 'vite.config.ts' modified
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
$ pnpm vp run --verbose build --mode development
$ vp build --mode development ◉ cache hit, replaying
[...]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Vite+ Task Runner • Execution Summary
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Statistics: 1 tasks • 1 cache hits • 0 cache misses
Performance: 100% cache hit rate, 13.07s saved in total
Task Details:
────────────────────────────────────────────────
[1] [redacted]#build: $ vp build --mode development ✓
→ Cache hit - output replayed - 13.07s saved
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
$ pnpm vp run --verbose build --mode production
$ vp build ○ cache miss: input configuration changed, executing
[...]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Vite+ Task Runner • Execution Summary
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Statistics: 1 tasks • 0 cache hits • 1 cache misses
Performance: 0% cache hit rate
Task Details:
────────────────────────────────────────────────
[1] trxma-frontend#build: $ vp build --mode production ✓
→ Not cached: read and wrote 'tmp/prod/[...]'
$ pnpm vp run --verbose build --mode production
$ vp build ○ cache miss: input configuration changed, executing
[...]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Vite+ Task Runner • Execution Summary
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Statistics: 1 tasks • 0 cache hits • 1 cache misses
Performance: 0% cache hit rate
Task Details:
────────────────────────────────────────────────
[1] trxma-frontend#build: $ vp build --mode production ✓
→ Not cached: read and wrote 'tmp/prod/[...]'
(I am prefixing shell commands I ran with $, so to distinguish it from when $ was printed to the console, I added two spaces in front of it)
I have not provided a reproduction sample at the moment (I am aware that I checked the box at the bottom), I just want to report this before I forget. I'm going to make a reproduction sample later.
Reproduction
See above
Steps to reproduce
Will be provided when I make a reproduction sample
System Info
`vp env current`: cannot run, see: https://github.com/voidzero-dev/vite-plus/issues/2515
$ pnpm vp --version
VITE+ - The Unified Toolchain for the Web
vp v0.2.9
Local vite-plus:
vite-plus v0.2.9
Tools:
vite v8.2.1
rolldown v1.2.3
vitest v4.1.10
oxfmt v0.62.0
oxlint v1.77.0
oxlint-tsgolint v7.0.2001
tsdown v0.22.14
Used Package Manager
pnpm
Logs
Validations
- Read the Contributing Guidelines.
- Check that there isn't already an issue for the same bug.
- Confirm this is a Vite+ issue and not an upstream issue (Vite, Vitest, tsdown, Rolldown, or Oxc).
- The provided reproduction is a minimal reproducible example.
- Dominant language
- Rust
- Stars
- 6k
- Forks
- 271
- Avg merge
- 20h 7m
- Merged PRs (30d)
- 139
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from voidzero-dev/vite-plus
-
pending triage
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
voidzero-dev/vite-plus#2854 · 1 assignee ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
voidzero-dev/vite-plus#2849 ·
Maintainers usually reply within 1 day
-
pending triage
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
voidzero-dev/vite-plus#2801 · 1 reaction ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
voidzero-dev/vite-plus#2097 · 10 comments · 2 reactions ·
Maintainers usually reply within 1 day
-
pending triage
Difficulty 4/5 3-5 days Newbie friendliness 48/100
voidzero-dev/vite-plus#2866 · 1 assignee ·
Maintainers usually reply within 1 day
All issues in voidzero-dev/vite-plus
Similar issues
-
chore P0
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 84/100
tauri-apps/window-vibrancy#230 ·
-
area:release bug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
registrystack/registry-stack#1874 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100