void 0.7.1 → 0.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/dist/agents-DqkFfc2c.mjs +151 -0
  2. package/dist/{auth-cmd-DVKi6dzh.mjs → auth-cmd-Dk0acCT5.mjs} +2 -2
  3. package/dist/{better-auth-shared-C9_GHSkR.d.mts → better-auth-shared-CZsIpjey.d.mts} +1 -1
  4. package/dist/{cache-B0BgSTZi.mjs → cache-DGSZ5Bh6.mjs} +2 -2
  5. package/dist/{cancel-deploy-D9OFt5gA.mjs → cancel-deploy-CrY3kt93.mjs} +1 -1
  6. package/dist/cli/cli.mjs +27 -174
  7. package/dist/{client-BUdfE3QJ.mjs → client-DCqnMpDt.mjs} +97 -11
  8. package/dist/{create-project-CN1pF-OQ.mjs → create-project-Bg88Kq_I.mjs} +3 -3
  9. package/dist/{db-BIP2kuEt.mjs → db-ClNu7vYQ.mjs} +13 -13
  10. package/dist/{delete-DJTvwbr-.mjs → delete-DXcX1yQZ.mjs} +2 -2
  11. package/dist/{deploy-BqXz1ycW.mjs → deploy-BkjqNk9U.mjs} +565 -161
  12. package/dist/{domain-B-fIU3VE.mjs → domain-CDQhvYNZ.mjs} +1 -1
  13. package/dist/{env-BwbZJd2x.mjs → env-CnrQY2b6.mjs} +1 -1
  14. package/dist/{env-helpers-Dr9Y7RnE.d.mts → env-helpers-CbeM_7-k.d.mts} +1 -1
  15. package/dist/{gen-U0Ktr4Zd.mjs → gen-C0EY2k27.mjs} +1 -1
  16. package/dist/{handler-B0ds0OHJ.d.mts → handler-dKQWyF-G.d.mts} +3 -3
  17. package/dist/index.d.mts +3 -3
  18. package/dist/index.mjs +13 -12
  19. package/dist/{init-Bb_Qsdq6.mjs → init-CPny6w9D.mjs} +63 -28
  20. package/dist/{link-D4d26PCm.mjs → link-eZ0aiHFK.mjs} +2 -2
  21. package/dist/{list-bQc1eQCZ.mjs → list-ztyEz4TW.mjs} +2 -2
  22. package/dist/{login-RWUDCfdx.mjs → login-B5HHT32i.mjs} +1 -1
  23. package/dist/{logs-DrkTklop.mjs → logs-J4BN0LXd.mjs} +1 -1
  24. package/dist/{mcp-kZ4zg13a.mjs → mcp-Bdu9bnjR.mjs} +1 -1
  25. package/dist/{node-DDfXj10V.mjs → node-DFqMcZR1.mjs} +3 -3
  26. package/dist/pages/client.d.mts +1 -1
  27. package/dist/pages/client.mjs +3 -0
  28. package/dist/pages/head-client.d.mts +1 -1
  29. package/dist/pages/head.d.mts +1 -1
  30. package/dist/pages/index.d.mts +2 -2
  31. package/dist/pages/index.mjs +1 -1
  32. package/dist/pages/islands-plugin.d.mts +1 -1
  33. package/dist/pages/protocol.d.mts +2 -2
  34. package/dist/pages/protocol.mjs +23 -18
  35. package/dist/{prepare-BAtWufvm.mjs → prepare-DKkx-2Kt.mjs} +1 -1
  36. package/dist/{project-cmd-ATFi3kRm.mjs → project-cmd-DKiQYdSd.mjs} +8 -8
  37. package/dist/{protocol-BWzXs2A2.d.mts → protocol-CK4OFwfR.d.mts} +2 -2
  38. package/dist/{rollback-BSyita3C.mjs → rollback-ZNvT8T54.mjs} +1 -1
  39. package/dist/{runner-6Ep3fNQu.mjs → runner-BUPRnMFN.mjs} +1 -1
  40. package/dist/runtime/ai.mjs +1 -1
  41. package/dist/runtime/auth.d.mts +1 -1
  42. package/dist/runtime/better-auth-pg.d.mts +1 -1
  43. package/dist/runtime/better-auth-pg.mjs +2 -2
  44. package/dist/runtime/better-auth.d.mts +1 -1
  45. package/dist/runtime/better-auth.mjs +2 -2
  46. package/dist/runtime/client.d.mts +2 -2
  47. package/dist/runtime/client.mjs +1 -1
  48. package/dist/runtime/env-helpers.d.mts +1 -1
  49. package/dist/runtime/env-public-client.d.mts +1 -1
  50. package/dist/runtime/env-public.d.mts +2 -2
  51. package/dist/runtime/env-public.mjs +1 -1
  52. package/dist/runtime/env.mjs +1 -1
  53. package/dist/runtime/fetch-stream.d.mts +1 -1
  54. package/dist/runtime/fetch-stream.mjs +1 -1
  55. package/dist/runtime/fetch.d.mts +1 -1
  56. package/dist/runtime/fetch.mjs +1 -1
  57. package/dist/runtime/handler.d.mts +1 -1
  58. package/dist/runtime/handler.mjs +1 -1
  59. package/dist/runtime/isr.mjs +1 -1
  60. package/dist/runtime/migration-handler.mjs +2 -2
  61. package/dist/runtime/validator.d.mts +1 -1
  62. package/dist/runtime/ws-server.d.mts +2 -2
  63. package/dist/runtime/ws.d.mts +3 -3
  64. package/dist/{secret-DmjBDxB1.mjs → secret-BXHx515u.mjs} +2 -2
  65. package/dist/{skills-ipldjlKE.mjs → skills-CbuYOthf.mjs} +1 -1
  66. package/package.json +13 -13
  67. package/skills/void/docs/guide/deployment.md +4 -6
  68. package/skills/void/docs/index.md +3 -3
  69. package/skills/void/docs/node_modules/void/AGENTS.md +1 -1
  70. package/skills/void/docs/node_modules/void/node_modules/@types/node/README.md +1 -1
  71. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@types/node/README.md +1 -1
  72. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/AGENTS.md +15 -0
  73. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/README.md +208 -0
  74. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/build.md +21 -0
  75. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/fmt.md +18 -0
  76. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/index.md +31 -0
  77. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/lint.md +24 -0
  78. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/pack.md +17 -0
  79. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/run.md +249 -0
  80. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/staged.md +15 -0
  81. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/test.md +18 -0
  82. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/build.md +40 -0
  83. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/cache.md +119 -0
  84. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/check.md +44 -0
  85. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/ci.md +64 -0
  86. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/commit-hooks.md +51 -0
  87. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/create.md +88 -0
  88. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/dev.md +24 -0
  89. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/env.md +102 -0
  90. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/fmt.md +41 -0
  91. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/ide-integration.md +101 -0
  92. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/implode.md +23 -0
  93. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/index.md +128 -0
  94. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/install.md +147 -0
  95. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/lint.md +50 -0
  96. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/migrate.md +173 -0
  97. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/pack.md +61 -0
  98. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/run.md +324 -0
  99. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/test.md +35 -0
  100. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/troubleshooting.md +132 -0
  101. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/upgrade.md +49 -0
  102. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/vpx.md +66 -0
  103. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/why.md +39 -0
  104. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/index.md +12 -0
  105. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/team.md +35 -0
  106. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/templates/generator/README.md +35 -0
  107. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/templates/monorepo/README.md +29 -0
  108. package/skills/void/docs/node_modules/void/node_modules/vite-plus/AGENTS.md +15 -0
  109. package/skills/void/docs/node_modules/void/node_modules/vite-plus/README.md +208 -0
  110. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/build.md +21 -0
  111. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/fmt.md +18 -0
  112. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/index.md +31 -0
  113. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/lint.md +24 -0
  114. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/pack.md +17 -0
  115. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/run.md +249 -0
  116. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/staged.md +15 -0
  117. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/test.md +18 -0
  118. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/build.md +40 -0
  119. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/cache.md +119 -0
  120. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/check.md +44 -0
  121. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/ci.md +64 -0
  122. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/commit-hooks.md +51 -0
  123. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/create.md +88 -0
  124. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/dev.md +24 -0
  125. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/env.md +102 -0
  126. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/fmt.md +41 -0
  127. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/ide-integration.md +101 -0
  128. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/implode.md +23 -0
  129. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/index.md +128 -0
  130. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/install.md +147 -0
  131. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/lint.md +50 -0
  132. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/migrate.md +173 -0
  133. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/pack.md +61 -0
  134. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/run.md +324 -0
  135. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/test.md +35 -0
  136. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/troubleshooting.md +132 -0
  137. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/upgrade.md +49 -0
  138. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/vpx.md +66 -0
  139. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/why.md +39 -0
  140. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/index.md +12 -0
  141. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/team.md +35 -0
  142. package/skills/void/docs/node_modules/void/node_modules/vite-plus/templates/generator/README.md +35 -0
  143. package/skills/void/docs/node_modules/void/node_modules/vite-plus/templates/monorepo/README.md +29 -0
  144. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/tsdown/README.md +0 -55
  145. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite/LICENSE.md +0 -2230
  146. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite/README.md +0 -20
  147. package/skills/void/docs/node_modules/void/node_modules/tsdown/README.md +0 -55
  148. package/skills/void/docs/node_modules/void/node_modules/vite/LICENSE.md +0 -2230
  149. package/skills/void/docs/node_modules/void/node_modules/vite/README.md +0 -20
  150. /package/dist/{auth-BdsJ0Aff.d.mts → auth-DrfOTMmr.d.mts} +0 -0
  151. /package/dist/{auth-migrations-BAtAck2g.mjs → auth-migrations-BwLPwRgH.mjs} +0 -0
  152. /package/dist/{better-auth-shared-CdYmQGry.mjs → better-auth-shared-APuDaPqW.mjs} +0 -0
  153. /package/dist/{defer-DcxEsVH1.mjs → defer-2ARBu8Et.mjs} +0 -0
  154. /package/dist/{drizzle-NnudE_UN.mjs → drizzle-C-NRqGhx.mjs} +0 -0
  155. /package/dist/{env-raw-BDL4TvdN.mjs → env-raw-DtfQ9E31.mjs} +0 -0
  156. /package/dist/{fetch-error-BQ8sZ5Nd.mjs → fetch-error-CEr0ACTl.mjs} +0 -0
  157. /package/dist/{fetch-error-CVZ5CGA-.d.mts → fetch-error-DflegrF3.d.mts} +0 -0
  158. /package/dist/{head-P-egrtFE.d.mts → head-CZGAunBV.d.mts} +0 -0
  159. /package/dist/{headers-DCXc7mDs.mjs → headers-YVkHjOyq.mjs} +0 -0
  160. /package/dist/{preset-D4I73kT4.mjs → preset-DFvePt0l.mjs} +0 -0
  161. /package/dist/{project-slug-CKam8lF9.mjs → project-slug-KRvHQEQI.mjs} +0 -0
  162. /package/dist/{resolve-project-Br5BR03U.mjs → resolve-project-DdjLQ2tB.mjs} +0 -0
  163. /package/dist/{runner-pg-D0wWHYnr.mjs → runner-pg-BI6f6Ncm.mjs} +0 -0
  164. /package/dist/{standard-schema-9CRjx-uR.d.mts → standard-schema-BfGDWXff.d.mts} +0 -0
  165. /package/dist/{subcommand-prompt-BKjuNAPb.mjs → subcommand-prompt-BMS1TNG5.mjs} +0 -0
  166. /package/dist/{types-mHOEwpW4.d.mts → types-AdKzPp2C.d.mts} +0 -0
  167. /package/dist/{yarn-pnp-BFqMV_bl.mjs → yarn-pnp-6LD6_3Ej.mjs} +0 -0
@@ -0,0 +1,40 @@
1
+ # Build
2
+
3
+ `vp build` builds Vite applications for production.
4
+
5
+ ## Overview
6
+
7
+ `vp build` runs the standard Vite production build through Vite+. Since it is directly based on Vite, the build pipeline and configuration model are the same as Vite. For more information about how Vite production builds work, see the [Vite guide](https://vite.dev/guide/build). Note that Vite+ uses Vite 8 and [Rolldown](https://rolldown.rs/) for builds.
8
+
9
+ ::: info
10
+ `vp build` always runs the built-in Vite production build. If your project also has a `build` script in `package.json`, run `vp run build` when you want to run that script instead.
11
+ :::
12
+
13
+ ## Usage
14
+
15
+ ```bash
16
+ vp build
17
+ vp build --watch
18
+ vp build --sourcemap
19
+ ```
20
+
21
+ ## Configuration
22
+
23
+ Use standard Vite configuration in `vite.config.ts`. For the full configuration reference, see the [Vite config docs](https://vite.dev/config/).
24
+
25
+ Use it for:
26
+
27
+ - [plugins](https://vite.dev/guide/using-plugins)
28
+ - [aliases](https://vite.dev/config/shared-options#resolve-alias)
29
+ - [`build`](https://vite.dev/config/build-options)
30
+ - [`preview`](https://vite.dev/config/preview-options)
31
+ - [environment modes](https://vite.dev/guide/env-and-mode)
32
+
33
+ ## Preview
34
+
35
+ Use `vp preview` to serve the production build locally after `vp build`.
36
+
37
+ ```bash
38
+ vp build
39
+ vp preview
40
+ ```
@@ -0,0 +1,119 @@
1
+ # Task Caching
2
+
3
+ Vite Task can automatically track dependencies and cache tasks run through `vp run`.
4
+
5
+ ## Overview
6
+
7
+ When a task runs successfully (exit code 0), its terminal output (stdout/stderr) is saved. On the next run, Vite Task checks if anything changed:
8
+
9
+ 1. **Arguments:** did the [additional arguments](/guide/run#additional-arguments) passed to the task change?
10
+ 2. **Environment variables:** did any [fingerprinted env vars](/config/run#env) change?
11
+ 3. **Input files:** did any file that the command reads change?
12
+
13
+ If everything matches, the cached output is replayed instantly, and the command does not run.
14
+
15
+ ::: info
16
+ Currently, only terminal output is cached and replayed. Output files such as `dist/` are not cached. If you delete them, use `--no-cache` to force a re-run. Output file caching is planned for a future release.
17
+ :::
18
+
19
+ When a cache miss occurs, Vite Task tells you exactly why:
20
+
21
+ ```
22
+ $ vp lint ✗ cache miss: 'src/utils.ts' modified, executing
23
+ $ vp build ✗ cache miss: env changed, executing
24
+ $ vp test ✗ cache miss: args changed, executing
25
+ ```
26
+
27
+ ## When Is Caching Enabled?
28
+
29
+ A command run by `vp run` is either a **task** defined in `vite.config.ts` or a **script** defined in `package.json`. Task names and script names cannot overlap. By default, **tasks are cached and scripts are not.**
30
+
31
+ There are three types of controls for task caching, in order:
32
+
33
+ ### 1. Per-task `cache: false`
34
+
35
+ A task can set [`cache: false`](/config/run#cache) to opt out. This cannot be overridden by any other cache control flag.
36
+
37
+ ### 2. CLI flags
38
+
39
+ `--no-cache` disables caching for everything. `--cache` enables caching for both tasks and scripts, which is equivalent to setting [`run.cache: true`](/config/run#run-cache) for that invocation.
40
+
41
+ ### 3. Workspace config
42
+
43
+ The [`run.cache`](/config/run#run-cache) option in your root `vite.config.ts` controls the default for each category:
44
+
45
+ | Setting | Default | Effect |
46
+ | --------------- | ------- | --------------------------------------- |
47
+ | `cache.tasks` | `true` | Cache tasks defined in `vite.config.ts` |
48
+ | `cache.scripts` | `false` | Cache `package.json` scripts |
49
+
50
+ ## Automatic File Tracking
51
+
52
+ Vite Task tracks which files each command reads during execution. When a task runs, it records which files the process opens, such as your `.ts` source files, `vite.config.ts`, and `package.json`, and records their content hashes. On the next run, it re-checks those hashes to determine if anything changed.
53
+
54
+ This means caching works out of the box for most commands without any configuration. Vite Task also records:
55
+
56
+ - **Missing files:** if a command probes for a file that doesn't exist, such as `utils.ts` during module resolution, creating that file later correctly invalidates the cache.
57
+ - **Directory listings:** if a command scans a directory, such as a test runner looking for `*.test.ts`, adding or removing files in that directory invalidates the cache.
58
+
59
+ ### Avoiding Overly Broad Input Tracking
60
+
61
+ Automatic tracking can sometimes include more files than necessary, causing unnecessary cache misses:
62
+
63
+ - **Tool cache files:** some tools maintain their own cache, such as TypeScript's `.tsbuildinfo` or Cargo's `target/`. These files may change between runs even when your source code has not, causing unnecessary cache invalidation.
64
+ - **Directory listings:** when a command scans a directory, such as when globbing for `**/*.js`, Vite Task sees the directory read but not the glob pattern. Any file added or removed in that directory, even unrelated ones, invalidates the cache.
65
+
66
+ Use the [`input`](/config/run#input) option to exclude files or to replace automatic tracking with explicit file patterns:
67
+
68
+ ```ts
69
+ tasks: {
70
+ build: {
71
+ command: 'tsc',
72
+ input: [{ auto: true }, '!**/*.tsbuildinfo'],
73
+ },
74
+ }
75
+ ```
76
+
77
+ ## Environment Variables
78
+
79
+ By default, tasks run in a clean environment. Only a small set of common variables, such as `PATH`, `HOME`, and `CI`, are passed through. Other environment variables are neither visible to the task nor included in the cache fingerprint.
80
+
81
+ To add an environment variable to the cache key, add it to [`env`](/config/run#env). Changing its value then invalidates the cache:
82
+
83
+ ```ts
84
+ tasks: {
85
+ build: {
86
+ command: 'webpack --mode production',
87
+ env: ['NODE_ENV'],
88
+ },
89
+ }
90
+ ```
91
+
92
+ To pass a variable to the task **without** affecting cache behavior, use [`untrackedEnv`](/config/run#untracked-env). This is useful for variables like `CI` or `GITHUB_ACTIONS` that should be available in the task, but do not generally affect caching behavior.
93
+
94
+ See [Run Config](/config/run#env) for details on wildcard patterns and the full list of automatically passed-through variables.
95
+
96
+ ## Cache Sharing
97
+
98
+ Vite Task's cache is content-based. If two tasks run the same command with the same inputs, they share the cache entry. This happens naturally when multiple tasks include a common step, either as standalone tasks or as parts of [compound commands](/guide/run#compound-commands):
99
+
100
+ ```json [package.json]
101
+ {
102
+ "scripts": {
103
+ "check": "vp lint && vp build",
104
+ "release": "vp lint && deploy-script"
105
+ }
106
+ }
107
+ ```
108
+
109
+ With caching enabled, for example through `--cache` or [`run.cache.scripts: true`](/config/run#run-cache), running `check` first means the `vp lint` step in `release` is an instant cache hit, since both run the same command against the same files.
110
+
111
+ ## Cache Commands
112
+
113
+ Use `vp cache clean` when you need to clear cached task results:
114
+
115
+ ```bash
116
+ vp cache clean
117
+ ```
118
+
119
+ The task cache is stored in `node_modules/.vite/task-cache` at the project root. `vp cache clean` deletes that cache directory.
@@ -0,0 +1,44 @@
1
+ # Check
2
+
3
+ `vp check` runs format, lint, and type checks together.
4
+
5
+ ## Overview
6
+
7
+ `vp check` is the default command for fast static checks in Vite+. It brings together formatting through [Oxfmt](https://oxc.rs/docs/guide/usage/formatter.html), linting through [Oxlint](https://oxc.rs/docs/guide/usage/linter.html), and TypeScript type checks through [tsgolint](https://github.com/oxc-project/tsgolint). By merging all of these tasks into a single command, `vp check` is faster than running formatting, linting, and type checking as separate tools in separate commands.
8
+
9
+ When `typeCheck` is enabled in the `lint.options` block in `vite.config.ts`, `vp check` also runs TypeScript type checks through the Oxlint type-aware path powered by the TypeScript Go toolchain and [tsgolint](https://github.com/oxc-project/tsgolint). `vp create` and `vp migrate` enable both `typeAware` and `typeCheck` by default.
10
+
11
+ We recommend turning `typeCheck` on so `vp check` becomes the single command for static checks during development.
12
+
13
+ ## Usage
14
+
15
+ ```bash
16
+ vp check
17
+ vp check --fix # Format and run autofixers.
18
+ vp check --no-fmt # Skip format; run lint (and type-check if enabled).
19
+ vp check --no-lint # Skip lint rules; keep type-check when enabled.
20
+ vp check --no-fmt --no-lint # Type-check only (requires `typeCheck` enabled).
21
+ ```
22
+
23
+ ## Configuration
24
+
25
+ `vp check` uses the same configuration you already define for linting and formatting:
26
+
27
+ - [`lint`](/guide/lint#configuration) block in `vite.config.ts`
28
+ - [`fmt`](/guide/fmt#configuration) block in `vite.config.ts`
29
+ - TypeScript project structure and tsconfig files for type-aware linting
30
+
31
+ Recommended base `lint` config:
32
+
33
+ ```ts [vite.config.ts]
34
+ import { defineConfig } from 'vite-plus';
35
+
36
+ export default defineConfig({
37
+ lint: {
38
+ options: {
39
+ typeAware: true,
40
+ typeCheck: true,
41
+ },
42
+ },
43
+ });
44
+ ```
@@ -0,0 +1,64 @@
1
+ # Continuous Integration
2
+
3
+ You can use `voidzero-dev/setup-vp` to use Vite+ in CI environments.
4
+
5
+ ## Overview
6
+
7
+ For GitHub Actions, the recommended setup is [`voidzero-dev/setup-vp`](https://github.com/voidzero-dev/setup-vp). It installs Vite+, sets up the required Node.js version and package manager, and can cache package installs automatically.
8
+
9
+ That means you usually do not need separate `setup-node`, package-manager setup, and manual dependency-cache steps in your workflow.
10
+
11
+ ## GitHub Actions
12
+
13
+ ```yaml
14
+ - uses: voidzero-dev/setup-vp@v1
15
+ with:
16
+ node-version: '22'
17
+ cache: true
18
+ - run: vp install
19
+ - run: vp check
20
+ - run: vp test
21
+ - run: vp build
22
+ ```
23
+
24
+ With `cache: true`, `setup-vp` handles dependency caching for you automatically.
25
+
26
+ ## Simplifying Existing Workflows
27
+
28
+ If you are migrating an existing GitHub Actions workflow, you can often replace large blocks of Node, package-manager, and cache setup with a single `setup-vp` step.
29
+
30
+ #### Before:
31
+
32
+ ```yaml
33
+ - uses: actions/setup-node@v4
34
+ with:
35
+ node-version: '24'
36
+
37
+ - uses: pnpm/action-setup@v4
38
+ with:
39
+ version: 10
40
+
41
+ - name: Get pnpm store path
42
+ run: pnpm store path
43
+
44
+ - uses: actions/cache@v4
45
+ with:
46
+ path: ~/.pnpm-store
47
+ key: ${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
48
+
49
+ - run: pnpm install && pnpm dev:setup
50
+ - run: pnpm test
51
+ ```
52
+
53
+ #### After:
54
+
55
+ ```yaml
56
+ - uses: voidzero-dev/setup-vp@v1
57
+ with:
58
+ node-version: '24'
59
+ cache: true
60
+
61
+ - run: vp install && vp run dev:setup
62
+ - run: vp check
63
+ - run: vp test
64
+ ```
@@ -0,0 +1,51 @@
1
+ # Commit Hooks
2
+
3
+ Use `vp config` to install commit hooks, and `vp staged` to run checks on staged files.
4
+
5
+ ## Overview
6
+
7
+ Vite+ supports commit hooks and staged-file checks without additional tooling.
8
+
9
+ Use:
10
+
11
+ - `vp config` to set up project hooks and related integrations
12
+ - `vp staged` to run checks against the files currently staged in Git
13
+
14
+ If you use [`vp create`](/guide/create) or [`vp migrate`](/guide/migrate), Vite+ prompts you to set this up for your project automatically.
15
+
16
+ ## Commands
17
+
18
+ ### `vp config`
19
+
20
+ `vp config` configures Vite+ for the current project. It installs Git hooks, sets up the hook directory, and can also handle related project integration such as agent setup. By default, hooks are written to `.vite-hooks`:
21
+
22
+ ```bash
23
+ vp config
24
+ vp config --hooks-dir .vite-hooks
25
+ ```
26
+
27
+ ### `vp staged`
28
+
29
+ `vp staged` runs staged-file checks using the `staged` config from `vite.config.ts`. If you set up Vite+ to handle your commit hooks, it will automatically run when you commit your local changes.
30
+
31
+ ```bash
32
+ vp staged
33
+ vp staged --verbose
34
+ vp staged --fail-on-changes
35
+ ```
36
+
37
+ ## Configuration
38
+
39
+ Define staged-file checks in the `staged` block in `vite.config.ts`:
40
+
41
+ ```ts [vite.config.ts]
42
+ import { defineConfig } from 'vite-plus';
43
+
44
+ export default defineConfig({
45
+ staged: {
46
+ '*.{js,ts,tsx,vue,svelte}': 'vp check --fix',
47
+ },
48
+ });
49
+ ```
50
+
51
+ This is the default Vite+ approach and should replace separate `lint-staged` configuration in most projects. Because `vp staged` reads from `vite.config.ts`, your staged-file checks stay in the same place as your lint, format, test, build, and task-runner config.
@@ -0,0 +1,88 @@
1
+ # Creating a Project
2
+
3
+ `vp create` interactively scaffolds new Vite+ projects, monorepos, and apps inside existing workspaces.
4
+
5
+ ## Overview
6
+
7
+ The `create` command is the fastest way to start with Vite+. It can be used in a few different ways:
8
+
9
+ - Start a new Vite+ monorepo
10
+ - Create a new standalone application or library
11
+ - Add a new app or library inside an existing project
12
+
13
+ This command can be used with built-in templates, community templates, or remote GitHub templates.
14
+
15
+ ## Usage
16
+
17
+ ```bash
18
+ vp create
19
+ vp create <template>
20
+ vp create <template> -- <template-options>
21
+ ```
22
+
23
+ ## Built-in Templates
24
+
25
+ Vite+ ships with these built-in templates:
26
+
27
+ - `vite:monorepo` creates a new monorepo
28
+ - `vite:application` creates a new application
29
+ - `vite:library` creates a new library
30
+ - `vite:generator` creates a new generator
31
+
32
+ ## Template Sources
33
+
34
+ `vp create` is not limited to the built-in templates.
35
+
36
+ - Use shorthand templates like `vite`, `@tanstack/start`, `svelte`, `next-app`, `nuxt`, `react-router`, and `vue`
37
+ - Use full package names like `create-vite` or `create-next-app`
38
+ - Use local templates such as `./tools/create-ui-component` or `@acme/generator-*`
39
+ - Use remote templates such as `github:user/repo` or `https://github.com/user/template-repo`
40
+
41
+ Run `vp create --list` to see the built-in templates and the common shorthand templates Vite+ recognizes.
42
+
43
+ ## Options
44
+
45
+ - `--directory <dir>` writes the generated project into a specific target directory
46
+ - `--agent <name>` creates agent instructions files during scaffolding
47
+ - `--editor <name>` writes editor config files
48
+ - `--hooks` enables pre-commit hook setup
49
+ - `--no-hooks` skips hook setup
50
+ - `--no-interactive` runs without prompts
51
+ - `--verbose` shows detailed scaffolding output
52
+ - `--list` prints the available built-in and popular templates
53
+
54
+ ## Template Options
55
+
56
+ Arguments after `--` are passed directly to the selected template.
57
+
58
+ This matters when the template itself accepts flags. For example, you can forward Vite template selection like this:
59
+
60
+ ```bash
61
+ vp create vite -- --template react-ts
62
+ ```
63
+
64
+ ## Examples
65
+
66
+ ```bash
67
+ # Interactive mode
68
+ vp create
69
+
70
+ # Create a Vite+ monorepo, application, library, or generator
71
+ vp create vite:monorepo
72
+ vp create vite:application
73
+ vp create vite:library
74
+ vp create vite:generator
75
+
76
+ # Use shorthand community templates
77
+ vp create vite
78
+ vp create @tanstack/start
79
+ vp create svelte
80
+
81
+ # Use full package names
82
+ vp create create-vite
83
+ vp create create-next-app
84
+
85
+ # Use remote templates
86
+ vp create github:user/repo
87
+ vp create https://github.com/user/template-repo
88
+ ```
@@ -0,0 +1,24 @@
1
+ # Dev
2
+
3
+ `vp dev` starts the Vite development server.
4
+
5
+ ## Overview
6
+
7
+ `vp dev` runs the standard Vite development server through Vite+, so you keep the normal Vite dev experience while using the same CLI entry point as the rest of the toolchain. For more information about using and configuring the dev server, see the [Vite guide](https://vite.dev/guide/).
8
+
9
+ ## Usage
10
+
11
+ ```bash
12
+ vp dev
13
+ ```
14
+
15
+ ## Configuration
16
+
17
+ Use standard Vite config in `vite.config.ts`. For the full configuration reference, see the [Vite config docs](https://vite.dev/config/).
18
+
19
+ Use it for:
20
+
21
+ - [plugins](https://vite.dev/guide/using-plugins)
22
+ - [aliases](https://vite.dev/config/shared-options#resolve-alias)
23
+ - [`server`](https://vite.dev/config/server-options)
24
+ - [environment modes](https://vite.dev/guide/env-and-mode)
@@ -0,0 +1,102 @@
1
+ # Environment
2
+
3
+ `vp env` manages Node.js versions globally and per project.
4
+
5
+ ## Overview
6
+
7
+ Managed mode is on by default, so `node`, `npm`, and related shims resolve through Vite+ and pick the right Node.js version for the current project.
8
+
9
+ By default, Vite+ stores its managed runtime and related files in `~/.vite-plus`. If needed, you can override that location with `VP_HOME`.
10
+
11
+ If you want to keep that behavior, run:
12
+
13
+ ```bash
14
+ vp env on
15
+ ```
16
+
17
+ This enables managed mode, where the shims always use the Vite+-managed Node.js installation.
18
+
19
+ If you do not want Vite+ to manage Node.js first, run:
20
+
21
+ ```bash
22
+ vp env off
23
+ ```
24
+
25
+ This switches to system-first mode, where the shims prefer your system Node.js and only fall back to the Vite+-managed runtime when needed.
26
+
27
+ ## Commands
28
+
29
+ ### Setup
30
+
31
+ - `vp env setup` creates or updates shims in `VP_HOME/bin`
32
+ - `vp env on` enables managed mode so shims always use Vite+-managed Node.js
33
+ - `vp env off` enables system-first mode so shims prefer system Node.js first
34
+ - `vp env print` prints the shell snippet for the current session
35
+
36
+ ### Manage
37
+
38
+ - `vp env default` sets or shows the global default Node.js version
39
+ - `vp env pin` pins a Node.js version in the current directory
40
+ - `vp env unpin` removes `.node-version` from the current directory
41
+ - `vp env use` sets a Node.js version for the current shell session
42
+ - `vp env install` installs a Node.js version
43
+ - `vp env uninstall` removes an installed Node.js version
44
+ - `vp env exec` runs a command with a specific Node.js version
45
+ - `vp node` runs a Node.js script — shorthand for `vp env exec node`
46
+
47
+ ### Inspect
48
+
49
+ - `vp env current` shows the current resolved environment
50
+ - `vp env doctor` runs environment diagnostics
51
+ - `vp env which` shows which tool path will be used
52
+ - `vp env list` shows locally installed Node.js versions
53
+ - `vp env list-remote` shows available Node.js versions from the registry
54
+
55
+ ## Project Setup
56
+
57
+ - Pin a project version with `.node-version`
58
+ - Use `vp install`, `vp dev`, and `vp build` normally
59
+ - Let Vite+ pick the right runtime for the project
60
+
61
+ ## Examples
62
+
63
+ ```bash
64
+ # Setup
65
+ vp env setup # Create shims for node, npm, npx
66
+ vp env on # Use Vite+ managed Node.js
67
+ vp env print # Print shell snippet for this session
68
+
69
+ # Manage
70
+ vp env pin lts # Pin the project to the latest LTS release
71
+ vp env install # Install the version from .node-version or package.json
72
+ vp env default lts # Set the global default version
73
+ vp env use 20 # Use Node.js 20 for the current shell session
74
+ vp env use --unset # Remove the session override
75
+
76
+ # Inspect
77
+ vp env current # Show current resolved environment
78
+ vp env current --json # JSON output for automation
79
+ vp env which node # Show which node binary will be used
80
+ vp env list-remote --lts # List only LTS versions
81
+
82
+ # Execute
83
+ vp env exec --node lts npm i # Execute npm with latest LTS
84
+ vp env exec node -v # Use shim mode with automatic version resolution
85
+ vp node script.js # Shorthand: run a Node.js script with the resolved version
86
+ vp node -e "console.log(1+1)" # Shorthand: forward any node flag or argument
87
+ ```
88
+
89
+ ## Custom Node.js Mirror
90
+
91
+ By default, Vite+ downloads Node.js from `https://nodejs.org/dist`. If you're behind a corporate proxy or need to use an internal mirror (e.g., Artifactory), set the `VP_NODE_DIST_MIRROR` environment variable:
92
+
93
+ ```bash
94
+ # Install a specific version from your custom mirror
95
+ VP_NODE_DIST_MIRROR=https://my-mirror.example.com/nodejs/dist vp env install 22
96
+
97
+ # Set the global default version using a custom mirror
98
+ VP_NODE_DIST_MIRROR=https://my-mirror.example.com/nodejs/dist vp env default lts
99
+
100
+ # Set it permanently in your shell profile (.bashrc, .zshrc, etc.)
101
+ echo 'export VP_NODE_DIST_MIRROR=https://my-mirror.example.com/nodejs/dist' >> ~/.zshrc
102
+ ```
@@ -0,0 +1,41 @@
1
+ # Format
2
+
3
+ `vp fmt` formats code with Oxfmt.
4
+
5
+ ## Overview
6
+
7
+ `vp fmt` is built on [Oxfmt](https://oxc.rs/docs/guide/usage/formatter.html), the Oxc formatter. Oxfmt has full Prettier compatibility and is designed as a fast drop-in replacement for Prettier.
8
+
9
+ Use `vp fmt` to format your project, and `vp check` to format, lint and type-check all at once.
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ vp fmt
15
+ vp fmt --check
16
+ vp fmt . --write
17
+ ```
18
+
19
+ ## Configuration
20
+
21
+ Put formatting configuration directly in the `fmt` block in `vite.config.ts` so all your configuration stays in one place. We do not recommend using `.oxfmtrc.json` with Vite+.
22
+
23
+ For editors, point the formatter config path at `./vite.config.ts` so format-on-save uses the same `fmt` block:
24
+
25
+ ```json [.vscode/settings.json]
26
+ {
27
+ "oxc.fmt.configPath": "./vite.config.ts"
28
+ }
29
+ ```
30
+
31
+ For the upstream formatter behavior and configuration reference, see the [Oxfmt docs](https://oxc.rs/docs/guide/usage/formatter.html).
32
+
33
+ ```ts [vite.config.ts]
34
+ import { defineConfig } from 'vite-plus';
35
+
36
+ export default defineConfig({
37
+ fmt: {
38
+ singleQuote: true,
39
+ },
40
+ });
41
+ ```
@@ -0,0 +1,101 @@
1
+ # IDE Integration
2
+
3
+ Vite+ supports VS Code and Zed through editor-specific settings that `vp create` and `vp migrate` can automatically write into your project.
4
+
5
+ ## VS Code
6
+
7
+ For the best VS Code experience with Vite+, install the [Vite Plus Extension Pack](https://marketplace.visualstudio.com/items?itemName=VoidZero.vite-plus-extension-pack). It currently includes:
8
+
9
+ - `Oxc` for formatting and linting via `vp check`
10
+ - `Vitest` for test runs via `vp test`
11
+
12
+ When you create or migrate a project, Vite+ prompts whether you want editor config written for VS Code. `vp create` additionally sets `npm.scriptRunner` to `vp` so the VS Code NPM Scripts panel runs scripts through the Vite+ task runner. For migrated or existing projects, you can add this setting manually (see below).
13
+
14
+ You can also manually set up the VS Code config:
15
+
16
+ ```json [.vscode/extensions.json]
17
+ {
18
+ "recommendations": ["VoidZero.vite-plus-extension-pack"]
19
+ }
20
+ ```
21
+
22
+ ```json [.vscode/settings.json]
23
+ {
24
+ "editor.defaultFormatter": "oxc.oxc-vscode",
25
+ "[javascript]": { "editor.defaultFormatter": "oxc.oxc-vscode" },
26
+ "[javascriptreact]": { "editor.defaultFormatter": "oxc.oxc-vscode" },
27
+ "[typescript]": { "editor.defaultFormatter": "oxc.oxc-vscode" },
28
+ "[typescriptreact]": { "editor.defaultFormatter": "oxc.oxc-vscode" },
29
+ "oxc.fmt.configPath": "./vite.config.ts",
30
+ "editor.formatOnSave": true,
31
+ "editor.formatOnSaveMode": "file",
32
+ "editor.codeActionsOnSave": {
33
+ "source.fixAll.oxc": "explicit"
34
+ }
35
+ }
36
+ ```
37
+
38
+ This gives the project a shared default formatter and enables Oxc-powered fix actions on save. The language-specific override blocks (`[javascript]`, `[typescript]`, etc.) are required because VS Code prioritizes user-level `[language]` settings over the workspace-level `editor.defaultFormatter` — without them, a global Prettier configuration would silently take over. Setting `oxc.fmt.configPath` to `./vite.config.ts` keeps editor format-on-save aligned with the `fmt` block in your Vite+ config. Vite+ uses `formatOnSaveMode: "file"` because Oxfmt does not support partial formatting.
39
+
40
+ To let the VS Code NPM Scripts panel run scripts through `vp`, add the following to your `.vscode/settings.json`:
41
+
42
+ ```json [.vscode/settings.json]
43
+ {
44
+ "npm.scriptRunner": "vp"
45
+ }
46
+ ```
47
+
48
+ This is included automatically by `vp create` but not by `vp migrate`, since existing projects may have team members who do not have `vp` installed locally.
49
+
50
+ ## Zed
51
+
52
+ For the best Zed experience with Vite+, install the [oxc-zed](https://github.com/oxc-project/oxc-zed) extension from the Zed extensions marketplace. It provides formatting and linting via `vp check`.
53
+
54
+ When you create or migrate a project, Vite+ prompts you to choose whether you want the editor config written for Zed.
55
+
56
+ You can also manually set up the Zed config:
57
+
58
+ ```json [.zed/settings.json]
59
+ {
60
+ "lsp": {
61
+ "oxlint": {
62
+ "initialization_options": {
63
+ "settings": {
64
+ "run": "onType",
65
+ "fixKind": "safe_fix",
66
+ "typeAware": true,
67
+ "unusedDisableDirectives": "deny"
68
+ }
69
+ }
70
+ },
71
+ "oxfmt": {
72
+ "initialization_options": {
73
+ "settings": {
74
+ "configPath": "./vite.config.ts",
75
+ "run": "onSave"
76
+ }
77
+ }
78
+ }
79
+ },
80
+ "languages": {
81
+ "JavaScript": {
82
+ "format_on_save": "on",
83
+ "prettier": { "allowed": false },
84
+ "formatter": [{ "language_server": { "name": "oxfmt" } }],
85
+ "code_action": "source.fixAll.oxc"
86
+ },
87
+ "TypeScript": {
88
+ "format_on_save": "on",
89
+ "prettier": { "allowed": false },
90
+ "formatter": [{ "language_server": { "name": "oxfmt" } }]
91
+ },
92
+ "Vue.js": {
93
+ "format_on_save": "on",
94
+ "prettier": { "allowed": false },
95
+ "formatter": [{ "language_server": { "name": "oxfmt" } }]
96
+ }
97
+ }
98
+ }
99
+ ```
100
+
101
+ Setting `oxfmt.configPath` to `./vite.config.ts` keeps editor format-on-save aligned with the `fmt` block in your Vite+ config. The full generated config covers additional languages (CSS, HTML, JSON, Markdown, etc.) — run `vp create` or `vp migrate` to get the complete file written automatically.