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
Describe the bug
given a
vite.config.tsthat looks roughly like this:that is, when run in the
productionmode the input/output arrays are[{auto: true}, '!tmp/prod/**'], and when run in thedevelopmentmode 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 developmentare 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 productionwill also be cache misses.you will get something along the lines of this:
(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
Used Package Manager
pnpm
Logs
Validations