Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Cache continuously invalidated with dynamic inputs

Open
#2,518 0 comments 0 reactions 1 assignee View on GitHub

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

pending triage
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
Dominant language
Rust
Stars
6k
Forks
271
Avg merge
20h 7m
Merged PRs (30d)
139

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from voidzero-dev/vite-plus

All issues in voidzero-dev/vite-plus

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.