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.
- package/dist/agents-DqkFfc2c.mjs +151 -0
- package/dist/{auth-cmd-DVKi6dzh.mjs → auth-cmd-Dk0acCT5.mjs} +2 -2
- package/dist/{better-auth-shared-C9_GHSkR.d.mts → better-auth-shared-CZsIpjey.d.mts} +1 -1
- package/dist/{cache-B0BgSTZi.mjs → cache-DGSZ5Bh6.mjs} +2 -2
- package/dist/{cancel-deploy-D9OFt5gA.mjs → cancel-deploy-CrY3kt93.mjs} +1 -1
- package/dist/cli/cli.mjs +27 -174
- package/dist/{client-BUdfE3QJ.mjs → client-DCqnMpDt.mjs} +97 -11
- package/dist/{create-project-CN1pF-OQ.mjs → create-project-Bg88Kq_I.mjs} +3 -3
- package/dist/{db-BIP2kuEt.mjs → db-ClNu7vYQ.mjs} +13 -13
- package/dist/{delete-DJTvwbr-.mjs → delete-DXcX1yQZ.mjs} +2 -2
- package/dist/{deploy-BqXz1ycW.mjs → deploy-BkjqNk9U.mjs} +565 -161
- package/dist/{domain-B-fIU3VE.mjs → domain-CDQhvYNZ.mjs} +1 -1
- package/dist/{env-BwbZJd2x.mjs → env-CnrQY2b6.mjs} +1 -1
- package/dist/{env-helpers-Dr9Y7RnE.d.mts → env-helpers-CbeM_7-k.d.mts} +1 -1
- package/dist/{gen-U0Ktr4Zd.mjs → gen-C0EY2k27.mjs} +1 -1
- package/dist/{handler-B0ds0OHJ.d.mts → handler-dKQWyF-G.d.mts} +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +13 -12
- package/dist/{init-Bb_Qsdq6.mjs → init-CPny6w9D.mjs} +63 -28
- package/dist/{link-D4d26PCm.mjs → link-eZ0aiHFK.mjs} +2 -2
- package/dist/{list-bQc1eQCZ.mjs → list-ztyEz4TW.mjs} +2 -2
- package/dist/{login-RWUDCfdx.mjs → login-B5HHT32i.mjs} +1 -1
- package/dist/{logs-DrkTklop.mjs → logs-J4BN0LXd.mjs} +1 -1
- package/dist/{mcp-kZ4zg13a.mjs → mcp-Bdu9bnjR.mjs} +1 -1
- package/dist/{node-DDfXj10V.mjs → node-DFqMcZR1.mjs} +3 -3
- package/dist/pages/client.d.mts +1 -1
- package/dist/pages/client.mjs +3 -0
- package/dist/pages/head-client.d.mts +1 -1
- package/dist/pages/head.d.mts +1 -1
- package/dist/pages/index.d.mts +2 -2
- package/dist/pages/index.mjs +1 -1
- package/dist/pages/islands-plugin.d.mts +1 -1
- package/dist/pages/protocol.d.mts +2 -2
- package/dist/pages/protocol.mjs +23 -18
- package/dist/{prepare-BAtWufvm.mjs → prepare-DKkx-2Kt.mjs} +1 -1
- package/dist/{project-cmd-ATFi3kRm.mjs → project-cmd-DKiQYdSd.mjs} +8 -8
- package/dist/{protocol-BWzXs2A2.d.mts → protocol-CK4OFwfR.d.mts} +2 -2
- package/dist/{rollback-BSyita3C.mjs → rollback-ZNvT8T54.mjs} +1 -1
- package/dist/{runner-6Ep3fNQu.mjs → runner-BUPRnMFN.mjs} +1 -1
- package/dist/runtime/ai.mjs +1 -1
- package/dist/runtime/auth.d.mts +1 -1
- package/dist/runtime/better-auth-pg.d.mts +1 -1
- package/dist/runtime/better-auth-pg.mjs +2 -2
- package/dist/runtime/better-auth.d.mts +1 -1
- package/dist/runtime/better-auth.mjs +2 -2
- package/dist/runtime/client.d.mts +2 -2
- package/dist/runtime/client.mjs +1 -1
- package/dist/runtime/env-helpers.d.mts +1 -1
- package/dist/runtime/env-public-client.d.mts +1 -1
- package/dist/runtime/env-public.d.mts +2 -2
- package/dist/runtime/env-public.mjs +1 -1
- package/dist/runtime/env.mjs +1 -1
- package/dist/runtime/fetch-stream.d.mts +1 -1
- package/dist/runtime/fetch-stream.mjs +1 -1
- package/dist/runtime/fetch.d.mts +1 -1
- package/dist/runtime/fetch.mjs +1 -1
- package/dist/runtime/handler.d.mts +1 -1
- package/dist/runtime/handler.mjs +1 -1
- package/dist/runtime/isr.mjs +1 -1
- package/dist/runtime/migration-handler.mjs +2 -2
- package/dist/runtime/validator.d.mts +1 -1
- package/dist/runtime/ws-server.d.mts +2 -2
- package/dist/runtime/ws.d.mts +3 -3
- package/dist/{secret-DmjBDxB1.mjs → secret-BXHx515u.mjs} +2 -2
- package/dist/{skills-ipldjlKE.mjs → skills-CbuYOthf.mjs} +1 -1
- package/package.json +13 -13
- package/skills/void/docs/guide/deployment.md +4 -6
- package/skills/void/docs/index.md +3 -3
- package/skills/void/docs/node_modules/void/AGENTS.md +1 -1
- package/skills/void/docs/node_modules/void/node_modules/@types/node/README.md +1 -1
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@types/node/README.md +1 -1
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/AGENTS.md +15 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/README.md +208 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/build.md +21 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/fmt.md +18 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/index.md +31 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/lint.md +24 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/pack.md +17 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/run.md +249 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/staged.md +15 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/test.md +18 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/build.md +40 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/cache.md +119 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/check.md +44 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/ci.md +64 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/commit-hooks.md +51 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/create.md +88 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/dev.md +24 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/env.md +102 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/fmt.md +41 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/ide-integration.md +101 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/implode.md +23 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/index.md +128 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/install.md +147 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/lint.md +50 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/migrate.md +173 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/pack.md +61 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/run.md +324 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/test.md +35 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/troubleshooting.md +132 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/upgrade.md +49 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/vpx.md +66 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/why.md +39 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/index.md +12 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/team.md +35 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/templates/generator/README.md +35 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/templates/monorepo/README.md +29 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/AGENTS.md +15 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/README.md +208 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/build.md +21 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/fmt.md +18 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/index.md +31 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/lint.md +24 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/pack.md +17 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/run.md +249 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/staged.md +15 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/test.md +18 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/build.md +40 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/cache.md +119 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/check.md +44 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/ci.md +64 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/commit-hooks.md +51 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/create.md +88 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/dev.md +24 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/env.md +102 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/fmt.md +41 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/ide-integration.md +101 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/implode.md +23 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/index.md +128 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/install.md +147 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/lint.md +50 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/migrate.md +173 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/pack.md +61 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/run.md +324 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/test.md +35 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/troubleshooting.md +132 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/upgrade.md +49 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/vpx.md +66 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/why.md +39 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/index.md +12 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/team.md +35 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/templates/generator/README.md +35 -0
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/templates/monorepo/README.md +29 -0
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/tsdown/README.md +0 -55
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite/LICENSE.md +0 -2230
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite/README.md +0 -20
- package/skills/void/docs/node_modules/void/node_modules/tsdown/README.md +0 -55
- package/skills/void/docs/node_modules/void/node_modules/vite/LICENSE.md +0 -2230
- package/skills/void/docs/node_modules/void/node_modules/vite/README.md +0 -20
- /package/dist/{auth-BdsJ0Aff.d.mts → auth-DrfOTMmr.d.mts} +0 -0
- /package/dist/{auth-migrations-BAtAck2g.mjs → auth-migrations-BwLPwRgH.mjs} +0 -0
- /package/dist/{better-auth-shared-CdYmQGry.mjs → better-auth-shared-APuDaPqW.mjs} +0 -0
- /package/dist/{defer-DcxEsVH1.mjs → defer-2ARBu8Et.mjs} +0 -0
- /package/dist/{drizzle-NnudE_UN.mjs → drizzle-C-NRqGhx.mjs} +0 -0
- /package/dist/{env-raw-BDL4TvdN.mjs → env-raw-DtfQ9E31.mjs} +0 -0
- /package/dist/{fetch-error-BQ8sZ5Nd.mjs → fetch-error-CEr0ACTl.mjs} +0 -0
- /package/dist/{fetch-error-CVZ5CGA-.d.mts → fetch-error-DflegrF3.d.mts} +0 -0
- /package/dist/{head-P-egrtFE.d.mts → head-CZGAunBV.d.mts} +0 -0
- /package/dist/{headers-DCXc7mDs.mjs → headers-YVkHjOyq.mjs} +0 -0
- /package/dist/{preset-D4I73kT4.mjs → preset-DFvePt0l.mjs} +0 -0
- /package/dist/{project-slug-CKam8lF9.mjs → project-slug-KRvHQEQI.mjs} +0 -0
- /package/dist/{resolve-project-Br5BR03U.mjs → resolve-project-DdjLQ2tB.mjs} +0 -0
- /package/dist/{runner-pg-D0wWHYnr.mjs → runner-pg-BI6f6Ncm.mjs} +0 -0
- /package/dist/{standard-schema-9CRjx-uR.d.mts → standard-schema-BfGDWXff.d.mts} +0 -0
- /package/dist/{subcommand-prompt-BKjuNAPb.mjs → subcommand-prompt-BMS1TNG5.mjs} +0 -0
- /package/dist/{types-mHOEwpW4.d.mts → types-AdKzPp2C.d.mts} +0 -0
- /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
|
+
```
|
package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/ide-integration.md
ADDED
|
@@ -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.
|