vite-plus 1.0.0 → 1.1.0

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 (55) hide show
  1. package/LICENSE +30 -5
  2. package/README.md +7 -7
  3. package/binding/index.cjs +54 -55
  4. package/binding/index.d.cts +50 -12
  5. package/dist/{agent-CKMI1a8W.js → agent-eISuMXJb.js} +2 -2
  6. package/dist/bin.js +9 -6
  7. package/dist/config/bin.js +3 -3
  8. package/dist/{constants-BqJiMVVU.js → constants-CCQkpaxK.js} +2 -2
  9. package/dist/create/bin.js +42 -10
  10. package/dist/{define-config-C_KGDLUZ.cjs → define-config-CREUiMmM.cjs} +2 -2
  11. package/dist/{define-config-Cf_5GHmY.d.ts → define-config-CeW9DETl.d.ts} +24 -8
  12. package/dist/{define-config-DhEJaYRc.js → define-config-Ro6PS4dP.js} +2 -2
  13. package/dist/define-config.cjs +1 -1
  14. package/dist/define-config.d.ts +1 -1
  15. package/dist/define-config.js +1 -1
  16. package/dist/{dist-BWiANxFS.js → dist-DUsqQuw8.js} +117 -1395
  17. package/dist/{editor-CHfGUhxP.js → editor-B8tkz7nL.js} +94 -52
  18. package/dist/index.cjs +1 -1
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.js +1 -1
  21. package/dist/lint-plugins.cjs +1 -1
  22. package/dist/migration/bin.js +54 -50
  23. package/dist/{oxlint-plugin-config-lMMD5fAC.js → oxlint-plugin-config-CbG58Kzr.js} +1 -1
  24. package/dist/oxlint-plugin.js +2 -2
  25. package/dist/pack-bin.js +3 -2
  26. package/dist/{package-Cgdlhamw.js → package-BS84eWrW.js} +7 -2
  27. package/dist/package-overrides-CpoQngt3.js +411 -0
  28. package/dist/{prompts-jMH8S4Wp.js → prompts-ByOzbMBG.js} +537 -252
  29. package/dist/{resolve-vite-config-BJYYtfY3.js → resolve-vite-config-Be237LWp.js} +2 -2
  30. package/dist/{resolve-vite-config-BPgpYMYp.js → resolve-vite-config-CofpYgnY.js} +1 -1
  31. package/dist/staged/bin.js +791 -742
  32. package/dist/sync-versions/bin.js +4 -6
  33. package/dist/sync-versions/bin.mjs +247 -1419
  34. package/dist/toolchain.js +9 -9
  35. package/dist/toolchain.json +9 -9
  36. package/dist/{tsconfig-CmKidmRD.js → tsconfig-3ONY2k2K.js} +1 -1
  37. package/dist/{tsconfig-BoYTBNX_.js → tsconfig-DzZ-nrx2.js} +2 -2
  38. package/dist/version.js +2 -2
  39. package/dist/versions.js +5 -5
  40. package/docs/guide/ci.md +3 -4
  41. package/docs/guide/env.md +10 -5
  42. package/docs/guide/github-actions-cache.md +1 -3
  43. package/docs/guide/ide-integration.md +3 -1
  44. package/docs/guide/implode.md +2 -0
  45. package/docs/guide/install.md +3 -0
  46. package/docs/guide/local-cli.md +7 -7
  47. package/docs/guide/migrate-rules.md +8 -0
  48. package/docs/guide/migrate.md +7 -7
  49. package/docs/guide/test.md +1 -1
  50. package/docs/guide/troubleshooting.md +2 -2
  51. package/docs/guide/upgrade-project.md +1 -1
  52. package/docs/guide/vitest-v5.md +2 -2
  53. package/docs/guide/vpx.md +2 -2
  54. package/package.json +31 -28
  55. package/dist/package-overrides-Dpn4scvN.js +0 -17
package/dist/toolchain.js CHANGED
@@ -4,7 +4,7 @@ export const toolchain = {
4
4
  {
5
5
  "id": "vite-plus",
6
6
  "name": "vite-plus",
7
- "version": "1.0.0",
7
+ "version": "1.1.0",
8
8
  "kind": "package",
9
9
  "delivery": [
10
10
  "dependency"
@@ -14,7 +14,7 @@ export const toolchain = {
14
14
  {
15
15
  "id": "vite-plus-core",
16
16
  "name": "@voidzero-dev/vite-plus-core",
17
- "version": "1.0.0",
17
+ "version": "1.1.0",
18
18
  "kind": "package",
19
19
  "delivery": [
20
20
  "dependency"
@@ -26,7 +26,7 @@ export const toolchain = {
26
26
  {
27
27
  "id": "vite",
28
28
  "name": "vite",
29
- "version": "8.3.1",
29
+ "version": "8.3.3",
30
30
  "kind": "tool",
31
31
  "delivery": [
32
32
  "bundled"
@@ -36,7 +36,7 @@ export const toolchain = {
36
36
  {
37
37
  "id": "rolldown",
38
38
  "name": "rolldown",
39
- "version": "1.2.11",
39
+ "version": "1.2.12",
40
40
  "kind": "tool",
41
41
  "delivery": [
42
42
  "bundled",
@@ -47,7 +47,7 @@ export const toolchain = {
47
47
  {
48
48
  "id": "vitest",
49
49
  "name": "vitest",
50
- "version": "5.0.1",
50
+ "version": "5.0.3",
51
51
  "kind": "tool",
52
52
  "delivery": [
53
53
  "dependency"
@@ -57,7 +57,7 @@ export const toolchain = {
57
57
  {
58
58
  "id": "oxlint",
59
59
  "name": "oxlint",
60
- "version": "1.85.0",
60
+ "version": "1.87.0",
61
61
  "kind": "tool",
62
62
  "delivery": [
63
63
  "dependency"
@@ -67,7 +67,7 @@ export const toolchain = {
67
67
  {
68
68
  "id": "oxfmt",
69
69
  "name": "oxfmt",
70
- "version": "0.70.0",
70
+ "version": "0.72.0",
71
71
  "kind": "tool",
72
72
  "delivery": [
73
73
  "dependency"
@@ -100,7 +100,7 @@ export const toolchain = {
100
100
  "id": "vite-task",
101
101
  "name": "vite-task",
102
102
  "revision": "7d69d6577ecf6bd83deee32186de59918a712873",
103
- "builtAt": "2026-09-28T02:31:26Z",
103
+ "builtAt": "2026-10-07T01:42:39Z",
104
104
  "kind": "tool",
105
105
  "delivery": [
106
106
  "compiled"
@@ -110,7 +110,7 @@ export const toolchain = {
110
110
  {
111
111
  "id": "oxc",
112
112
  "name": "oxc",
113
- "version": "0.151.0",
113
+ "version": "0.152.0",
114
114
  "kind": "engine",
115
115
  "delivery": [
116
116
  "compiled"
@@ -4,7 +4,7 @@
4
4
  {
5
5
  "id": "vite-plus",
6
6
  "name": "vite-plus",
7
- "version": "1.0.0",
7
+ "version": "1.1.0",
8
8
  "kind": "package",
9
9
  "delivery": [
10
10
  "dependency"
@@ -14,7 +14,7 @@
14
14
  {
15
15
  "id": "vite-plus-core",
16
16
  "name": "@voidzero-dev/vite-plus-core",
17
- "version": "1.0.0",
17
+ "version": "1.1.0",
18
18
  "kind": "package",
19
19
  "delivery": [
20
20
  "dependency"
@@ -26,7 +26,7 @@
26
26
  {
27
27
  "id": "vite",
28
28
  "name": "vite",
29
- "version": "8.3.1",
29
+ "version": "8.3.3",
30
30
  "kind": "tool",
31
31
  "delivery": [
32
32
  "bundled"
@@ -36,7 +36,7 @@
36
36
  {
37
37
  "id": "rolldown",
38
38
  "name": "rolldown",
39
- "version": "1.2.11",
39
+ "version": "1.2.12",
40
40
  "kind": "tool",
41
41
  "delivery": [
42
42
  "bundled",
@@ -47,7 +47,7 @@
47
47
  {
48
48
  "id": "vitest",
49
49
  "name": "vitest",
50
- "version": "5.0.1",
50
+ "version": "5.0.3",
51
51
  "kind": "tool",
52
52
  "delivery": [
53
53
  "dependency"
@@ -57,7 +57,7 @@
57
57
  {
58
58
  "id": "oxlint",
59
59
  "name": "oxlint",
60
- "version": "1.85.0",
60
+ "version": "1.87.0",
61
61
  "kind": "tool",
62
62
  "delivery": [
63
63
  "dependency"
@@ -67,7 +67,7 @@
67
67
  {
68
68
  "id": "oxfmt",
69
69
  "name": "oxfmt",
70
- "version": "0.70.0",
70
+ "version": "0.72.0",
71
71
  "kind": "tool",
72
72
  "delivery": [
73
73
  "dependency"
@@ -100,7 +100,7 @@
100
100
  "id": "vite-task",
101
101
  "name": "vite-task",
102
102
  "revision": "7d69d6577ecf6bd83deee32186de59918a712873",
103
- "builtAt": "2026-09-28T02:31:26Z",
103
+ "builtAt": "2026-10-07T01:42:39Z",
104
104
  "kind": "tool",
105
105
  "delivery": [
106
106
  "compiled"
@@ -110,7 +110,7 @@
110
110
  {
111
111
  "id": "oxc",
112
112
  "name": "oxc",
113
- "version": "0.151.0",
113
+ "version": "0.152.0",
114
114
  "kind": "engine",
115
115
  "delivery": [
116
116
  "compiled"
@@ -1,2 +1,2 @@
1
- import { a as hasBaseUrlInTsconfig, i as fixBaseUrlInTsconfig } from "./tsconfig-BoYTBNX_.js";
1
+ import { a as hasBaseUrlInTsconfig, i as fixBaseUrlInTsconfig } from "./tsconfig-DzZ-nrx2.js";
2
2
  export { fixBaseUrlInTsconfig, hasBaseUrlInTsconfig };
@@ -1,7 +1,7 @@
1
- import { p as createBaseUrlTsconfigFixArgs, t as BASEURL_TSCONFIG_FIX_PACKAGE } from "./constants-BqJiMVVU.js";
1
+ import { p as createBaseUrlTsconfigFixArgs, t as BASEURL_TSCONFIG_FIX_PACKAGE } from "./constants-CCQkpaxK.js";
2
2
  import { c as modify, l as parse, o as applyEdits } from "./json-JP24qHUF.js";
3
3
  import { t as vitest_v5_entry_points_default } from "./vitest-v5-entry-points-DthU1e_O.js";
4
- import { S as log, b as confirm, k as isCancel, t as cancelAndExit } from "./prompts-jMH8S4Wp.js";
4
+ import { C as confirm, M as isCancel, T as log, t as cancelAndExit } from "./prompts-ByOzbMBG.js";
5
5
  import { n as runCommandSilently } from "./command-CguLh2KL.js";
6
6
  import path from "node:path";
7
7
  import { styleText } from "node:util";
package/dist/version.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { t as renderCliDoc } from "./help-BmKpeOP9.js";
2
2
  import { i as log, o as printHeader, t as accent } from "./terminal-MKGAuy-p.js";
3
- import { y as version } from "./constants-BqJiMVVU.js";
4
- import { i as hasVitePlusDependency, n as detectPackageMetadata } from "./package-Cgdlhamw.js";
3
+ import { y as version } from "./constants-CCQkpaxK.js";
4
+ import { a as hasVitePlusDependency, n as detectPackageMetadata } from "./package-BS84eWrW.js";
5
5
  import path from "node:path";
6
6
  import { pathToFileURL } from "node:url";
7
7
  import fs from "node:fs";
package/dist/versions.js CHANGED
@@ -1,9 +1,9 @@
1
1
  export const versions = {
2
- "vite": "8.3.1",
3
- "rolldown": "1.2.11",
4
- "vitest": "5.0.1",
5
- "oxfmt": "0.70.0",
6
- "oxlint": "1.85.0",
2
+ "vite": "8.3.3",
3
+ "rolldown": "1.2.12",
4
+ "vitest": "5.0.3",
5
+ "oxfmt": "0.72.0",
6
+ "oxlint": "1.87.0",
7
7
  "oxlint-tsgolint": "7.0.2003",
8
8
  "tsdown": "0.23.0"
9
9
  };
package/docs/guide/ci.md CHANGED
@@ -14,20 +14,19 @@ Run `vp migrate` to replace exact `voidzero-dev/setup-vp@v1` references in GitHu
14
14
 
15
15
  ## GitHub Actions
16
16
 
17
- The GitHub Action sets up Vite+, the required Node.js version, and the package manager. This means you usually do not need separate `setup-node`, package-manager setup, or manual dependency caching steps in your workflow.
17
+ The GitHub Action sets up Vite+, the required Node.js version, and the package manager. This means you usually do not need separate `setup-node`, package-manager setup, dependency installation, or manual dependency caching steps in your workflow.
18
18
 
19
19
  ```yaml [.github/workflows/ci.yml]
20
20
  - uses: voidzero-dev/setup-vp@<setup-vp-version>
21
21
  with:
22
22
  node-version: '24'
23
23
  cache: true
24
- - run: vp install
25
24
  - run: vp check
26
25
  - run: vp test
27
26
  - run: vp build
28
27
  ```
29
28
 
30
- With `cache: true`, `setup-vp` handles dependency caching for you automatically.
29
+ `setup-vp` runs `vp install` by default. If you set `run-install: false`, make sure to add a `vp install` step before running other commands. With `cache: true`, `setup-vp` handles dependency caching for you automatically.
31
30
 
32
31
  ::: tip
33
32
  `setup-vp` caches package-manager data. To reuse Vite Task results across CI runs, add a separate [GitHub Actions cache for Vite Task](/guide/github-actions-cache).
@@ -151,7 +150,7 @@ If you are migrating an existing GitHub Actions workflow, you can often replace
151
150
  node-version: '24'
152
151
  cache: true
153
152
 
154
- - run: vp install && vp run dev:setup
153
+ - run: vp run dev:setup
155
154
  - run: vp check
156
155
  - run: vp test
157
156
  ```
package/docs/guide/env.md CHANGED
@@ -174,6 +174,7 @@ In CI, `vp env use` can run without shell initialization. It writes a temporary
174
174
  ### Manage
175
175
 
176
176
  - `vp env default` shows the global Node.js default and each configured package-manager version. Bare versions set Node.js; qualified specs such as `pnpm@10.18.0` set that package manager's shim default without replacing the defaults for Bun, Yarn, or npm. `--unset` clears all defaults unless scoped.
177
+ - `vp env default <lts|latest>` and `<package-manager>@latest` re-resolve on each use, so the default follows new releases, including new majors. Other versions and ranges, such as `24` or `pnpm@10`, resolve to an exact version when set.
177
178
  - `vp env pin` shows or writes project pins. Existing `.node-version` and top-level `packageManager` fields keep being updated for compatibility. An existing `.nvmrc` is updated when it is the effective Node source in the current directory; its comments and other non-version content are preserved. Otherwise Vite+ writes the matching `devEngines` entry. Use `--target node-version`, `--target nvmrc`, `--target dev-engines`, or `--target package-manager` to choose explicitly. Pinning in a child directory does not modify an inherited `.nvmrc`.
178
179
  - `vp env unpin` removes both effective pins by default; append a selector to remove one. Lower-priority declarations are not deleted.
179
180
  - `vp env use` activates the complete project environment. Explicit specs override selected components; `--unset` clears both unless scoped.
@@ -208,13 +209,17 @@ vp env off pnpm # Prefer system pnpm only
208
209
  vp env print # Print PATH setup for both components
209
210
 
210
211
  # Manage
212
+ vp env pin lts # Pin Node.js only to an exact version
211
213
  vp env pin lts pnpm@10 # Pin both project components to exact versions
212
214
  vp env install # Install the complete resolved environment
213
- vp env default node@24 # Set the global Node.js default
214
- vp env default pnpm@10 # Set pnpm's global default version
215
215
  vp env use 20 pnpm@10 # Override both components for this shell
216
216
  vp env use --unset pnpm # Remove only the pnpm session version
217
217
  vp env use --unset pm # Remove all package-manager session versions
218
+
219
+ # Manage (global)
220
+ vp env default lts # Always use the latest LTS, including new majors
221
+ vp env default node@24 # Pin the Node.js default to an exact version
222
+ vp env default pnpm@10 # Pin the pnpm default to an exact version
218
223
  vp env clean # Remove unused managed Node.js and package manager versions
219
224
 
220
225
  # Inspect
@@ -244,7 +249,7 @@ The JSON output for `current`, `list`, and `list-remote` is organized by compone
244
249
  "source": "devEngines.runtime",
245
250
  "source_path": "/project/package.json",
246
251
  "project_root": "/project",
247
- "bin_path": "/home/.vite-plus/js_runtime/node/22.0.0/bin/node",
252
+ "bin_path": "/home/.local/share/vite-plus/js_runtime/node/22.0.0/bin/node",
248
253
  "installed": true,
249
254
  "mode": "managed"
250
255
  },
@@ -255,8 +260,8 @@ The JSON output for `current`, `list`, and `list-remote` is organized by compone
255
260
  "source_path": "/project/package.json",
256
261
  "project_root": "/project",
257
262
  "bin_paths": {
258
- "pnpm": "/home/.vite-plus/package_manager/pnpm/10.18.0/pnpm/bin/pnpm",
259
- "pnpx": "/home/.vite-plus/package_manager/pnpm/10.18.0/pnpm/bin/pnpx"
263
+ "pnpm": "/home/.local/share/vite-plus/package_manager/pnpm/10.18.0/pnpm/bin/pnpm",
264
+ "pnpx": "/home/.local/share/vite-plus/package_manager/pnpm/10.18.0/pnpm/bin/pnpx"
260
265
  },
261
266
  "installed": true,
262
267
  "mode": "managed"
@@ -61,7 +61,7 @@ vp run lint # should print "cache hit"
61
61
 
62
62
  ## 2. Restore The Cache After Install
63
63
 
64
- Restore `node_modules/.vite/task-cache` after `vp install`, because package installation can recreate or modify `node_modules`.
64
+ Restore `node_modules/.vite/task-cache` after the `setup-vp` step, because package installation can recreate or modify `node_modules`.
65
65
 
66
66
  Set `<setup-vp-version>` below to an exact version from the [`setup-vp` releases page](https://github.com/voidzero-dev/setup-vp/releases). You can use a commit SHA instead.
67
67
 
@@ -89,8 +89,6 @@ jobs:
89
89
  node-version: '24'
90
90
  cache: true
91
91
 
92
- - run: vp install
93
-
94
92
  - name: Restore Vite Task cache
95
93
  id: vite-task-cache
96
94
  uses: actions/cache/restore@v6
@@ -145,7 +145,7 @@ You can also manually set up the IDE configuration to match your Vite+ setup:
145
145
  "javascript.nodejs.core.library.configured.version": "24.18.0", // Replace with your selected Node.js version
146
146
  "javascript.nodejs.core.library.typings.version": "24.13.3", // Replace with the version of @types/node that corresponds to your runtime (or omit if you don't want it)
147
147
  "javascript.preferred.runtime.type.id": "node",
148
- "nodejs_interpreter_path": "$USER_HOME$/.vite-plus/bin/node",
148
+ "nodejs_interpreter_path": "$USER_HOME$/.local/share/vite-plus/bin/node",
149
149
  "nodejs_package_manager_path": "pnpm" // Replace with your package manager of choice
150
150
  }
151
151
  }]]>
@@ -153,6 +153,8 @@ You can also manually set up the IDE configuration to match your Vite+ setup:
153
153
  </project>
154
154
  ```
155
155
 
156
+ This path assumes a new Unix installation using the default XDG directories. On Windows, use `%LOCALAPPDATA%\vite-plus\bin\node.exe`. Run `vp env current node` to check the resolved Node.js version and binary path. If you use a custom `VP_HOME` or XDG directories, or an older Vite+ installation, update `nodejs_interpreter_path` to the path of your Node.js shim.
157
+
156
158
  ```xml [.idea/OxfmtSettings.xml]
157
159
  <?xml version="1.0" encoding="UTF-8"?>
158
160
  <project version="4">
@@ -16,6 +16,8 @@ If you decide Vite+ is not for you, please [share your feedback with us](https:/
16
16
  vp implode
17
17
  ```
18
18
 
19
+ Review the directories and shell profiles listed by the command, then type `boom` to confirm removal. Any other input cancels the operation.
20
+
19
21
  Skip the confirmation prompt with:
20
22
 
21
23
  ```bash
@@ -64,11 +64,14 @@ vp install -w
64
64
  Use the `-g` flag for installing, updating or removing globally installed packages:
65
65
 
66
66
  - `vp install -g <pkg>` installs a package globally
67
+ - `vp install -g --node <version> <pkg>` installs a package globally with a specific Node.js version
67
68
  - `vp uninstall -g <pkg>` removes a global package
68
69
  - `vp update -g [pkg]` updates one global package or all of them
69
70
  - `vp list -g [pkg]` lists global packages
70
71
  - `vp outdated -g [pkg]` prints outdated packages
71
72
 
73
+ Without `--node`, `vp install -g` uses the Node.js version resolved for the current directory, so a project's pin takes precedence over `vp env default`. See [Node.js Selection](/guide/env#node-js-selection).
74
+
72
75
  Updates keep the version spec a package was installed with: a package installed from a dist-tag (e.g. `vp install -g some-pkg@nightly`) updates to the newest version of that tag, and a version range stays within the range. Reinstall with a different spec (e.g. `vp update -g some-pkg@latest`) to switch, or pass `--latest` to `vp update -g` to move packages to the `latest` tag and clear their recorded specs. `vp outdated -g` reports both the newest version matching the recorded spec (`Wanted`) and the newest version on the `latest` tag.
73
76
 
74
77
  ::: warning
@@ -45,27 +45,27 @@ If you are manually migrating a project to Vite+, install these dev dependencies
45
45
  vp install -D vite-plus
46
46
  ```
47
47
 
48
- You need to add overrides to your package manager so that other packages resolve the Vite+ versions: alias `vite` to `@voidzero-dev/vite-plus-core`, and pin `vitest` to the version Vite+ bundles (run `vp --version`) so the whole project shares a single Vitest copy with `vp test`. Without the `vitest` pin, a dependency or workspace package can pull a different Vitest than the bundled runner, splitting Vitest's internals (mocks, `expect`, runner state):
48
+ Add overrides to your package manager so that other packages resolve the Vite+ versions. Alias `vite` to `@voidzero-dev/vite-plus-core`, setting `<vite-plus-version>` to the installed `vite-plus` version. Pin `vitest` to `<vitest-version>`, using the bundled version shown by `vp toolchain vitest` so the whole project shares a single Vitest copy with `vp test`. Without the `vitest` pin, a dependency or workspace package can pull a different Vitest than the bundled runner, splitting Vitest's internals (mocks, `expect`, runner state):
49
49
 
50
50
  ::: code-group
51
51
 
52
52
  ```yaml [pnpm-workspace.yaml]
53
53
  overrides:
54
- vite: npm:@voidzero-dev/vite-plus-core@latest
55
- vitest: 5.0.1
54
+ vite@*: npm:@voidzero-dev/vite-plus-core@<vite-plus-version> # Match the installed vite-plus version
55
+ vitest@*: <vitest-version> # Match the version from vp toolchain vitest
56
56
  ```
57
57
 
58
58
  ```json [npm / Bun package.json]
59
59
  "overrides": {
60
- "vite": "npm:@voidzero-dev/vite-plus-core@latest",
61
- "vitest": "5.0.1"
60
+ "vite": "npm:@voidzero-dev/vite-plus-core@<vite-plus-version>",
61
+ "vitest": "<vitest-version>"
62
62
  }
63
63
  ```
64
64
 
65
65
  ```json [Yarn package.json]
66
66
  "resolutions": {
67
- "vite": "npm:@voidzero-dev/vite-plus-core@latest",
68
- "vitest": "5.0.1"
67
+ "vite": "npm:@voidzero-dev/vite-plus-core@<vite-plus-version>",
68
+ "vitest": "<vitest-version>"
69
69
  }
70
70
  ```
71
71
 
@@ -96,6 +96,14 @@ With `cache: false`, the moved settings would have no effect, so decide whether
96
96
 
97
97
  ## Dependency Rules
98
98
 
99
+ Migration preserves the project's package-manager declaration policy. An
100
+ existing `packageManager` or `devEngines.packageManager` field remains the
101
+ source of truth, while a project that relies only on its lockfile remains
102
+ unpinned. In particular, migration does not turn the package-manager version
103
+ used for its own install into a new exact requirement for contributors or CI.
104
+ When migration infers an undeclared package manager, it prints a warning and
105
+ points to `vp env pin` for projects that want to opt into an explicit pin.
106
+
99
107
  What happens to each toolchain dependency, at a glance:
100
108
 
101
109
  | Dependency | What happens |
@@ -95,21 +95,21 @@ Upgrade the [global CLI](./upgrade.md#global-vp) to your target 1.0 release, the
95
95
 
96
96
  ### Without the Global CLI
97
97
 
98
- Use an existing Node.js runtime that satisfies `^22.18.0 || ^24.11.0 || >=26.0.0`. Run the target migrator through your package manager without adding it to the project first. For the `1.0.0` release:
98
+ Use an existing Node.js runtime that satisfies `^22.18.0 || ^24.11.0 || >=26.0.0`. Run the target migrator through your package manager without adding it to the project first. For the `1.1.0` release:
99
99
 
100
100
  ::: code-group
101
101
 
102
102
  ```bash [pnpm]
103
- pnpm dlx --package=vite-plus@1.0.0 vp migrate --no-interactive
103
+ pnpm dlx --package=vite-plus@1.1.0 vp migrate --no-interactive
104
104
  ```
105
105
 
106
106
  ```bash [npm]
107
- npx --package=vite-plus@1.0.0 vp migrate --no-interactive
107
+ npx --package=vite-plus@1.1.0 vp migrate --no-interactive
108
108
  ```
109
109
 
110
110
  :::
111
111
 
112
- Replace `1.0.0` with your target release. For a preview, use the version from the PR and pass `--registry=https://registry-bridge.viteplus.dev` to `pnpm` or `npx` before the `vp` command. Keep the version in `--package` explicit so you run the target migrator rather than the old local CLI.
112
+ Replace `1.1.0` with your target release. For a preview, use the version from the PR and pass `--registry=https://registry-bridge.viteplus.dev` to `pnpm` or `npx` before the `vp` command. Keep the version in `--package` explicit so you run the target migrator rather than the old local CLI.
113
113
 
114
114
  After migration, finish dependency installation and validate with the updated local CLI:
115
115
 
@@ -151,7 +151,7 @@ View and copy this prompt into your coding agent to upgrade an existing Vite+ 0.
151
151
 
152
152
  ### Vitest
153
153
 
154
- Vitest is automatically migrated through `vp migrate`. `vite-plus` re-exports upstream `vitest@5.0.1` under `vite-plus/test*`, so for node-mode tests a single `vite-plus` install is enough — you no longer need to install `vitest` directly.
154
+ Vitest is automatically migrated through `vp migrate`. `vite-plus` re-exports upstream `vitest@5.0.3` under `vite-plus/test*`, so for node-mode tests a single `vite-plus` install is enough — you no longer need to install `vitest` directly.
155
155
 
156
156
  For browser mode, you can use the base browser runtime (`@vitest/browser`) and Preview provider (`@vitest/browser-preview`) included in `vite-plus`. To use Playwright or WebDriverIO, you also need the opt-in provider (`@vitest/browser-playwright` or `@vitest/browser-webdriverio`) and its framework peer (`playwright` or `webdriverio`).
157
157
 
@@ -163,9 +163,9 @@ If you are migrating manually, update all the imports to `vite-plus/test*` inste
163
163
 
164
164
  ```ts
165
165
  // before
166
- import { defineConfig } from 'vitest/config';
167
- import { describe, expect, it, vi } from 'vitest';
168
166
  import { playwright } from '@vitest/browser-playwright';
167
+ import { describe, expect, it, vi } from 'vitest';
168
+ import { defineConfig } from 'vitest/config';
169
169
 
170
170
  const { page } = await import('@vitest/browser/context');
171
171
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  `vp test` runs tests with [Vitest](https://vitest.dev).
4
4
 
5
- The bundled runner uses Vitest `5.0.1` and requires Node `^22.18.0 || ^24.11.0 || >=26.0.0`. For existing projects, follow [Upgrade to Vitest 5](./vitest-v5.md) before updating dependencies.
5
+ The bundled runner uses Vitest `5.0.3` and requires Node `^22.18.0 || ^24.11.0 || >=26.0.0`. For existing projects, follow [Upgrade to Vitest 5](./vitest-v5.md) before updating dependencies.
6
6
 
7
7
  ## Overview
8
8
 
@@ -3,7 +3,7 @@
3
3
  Use this page when something in Vite+ is not behaving the way you expect.
4
4
 
5
5
  ::: info
6
- Vite+ is in beta: stable, but not yet complete. We are adding features on the road to 1.0 and prioritize community feedback, so please [reach out](#asking-for-help) if something does not work as expected.
6
+ Vite+ 1.0 is available. We continue to improve it and welcome community feedback, so please [reach out](#asking-for-help) if something does not work as expected.
7
7
  :::
8
8
 
9
9
  ## Supported Tool Versions
@@ -93,8 +93,8 @@ When `vite.config.ts` imports plugins at the top level, they are evaluated for e
93
93
  Use `lazyPlugins` to skip the plugin factory when vite-plus loads your config only to read a metadata block (`lint`, `fmt`, `check`, `staged`, `pack`, `create`, the `run`/`cache` task lookup, and editor tooling). The plugins still load whenever Vite actually runs, `dev`, `build`, `test`, `preview`, and any build your own scripts spawn (a `vp run` task, `vp exec`):
94
94
 
95
95
  ```ts [vite.config.ts]
96
- import { defineConfig, lazyPlugins } from 'vite-plus';
97
96
  import myPlugin from 'vite-plugin-foo';
97
+ import { defineConfig, lazyPlugins } from 'vite-plus';
98
98
 
99
99
  export default defineConfig({
100
100
  plugins: lazyPlugins(() => [myPlugin()]),
@@ -58,4 +58,4 @@ vp migrate
58
58
 
59
59
  Migrate writes the bridge registry to `.npmrc`. For Yarn Berry, it writes the registry to `.yarnrc.yml`. It pins `vite-plus` and the `vite` alias to the matching `0.0.0-commit.<sha>` version. The `vite` alias points to `@voidzero-dev/vite-plus-core`. Commit the registry line if the project CI must test the preview.
60
60
 
61
- After the install, run `vp toolchain` to show the selected versions. After testing, set `vite-plus` to `latest`. Remove the bridge `registry` line from `.npmrc` or `.yarnrc.yml`. Then run `vp install`.
61
+ After the install, run `vp toolchain` to show the selected versions. After testing, set `vite-plus` to `latest` and the `vite` alias to `npm:@voidzero-dev/vite-plus-core@latest` wherever they are declared. Remove the preview bridge setting from `.npmrc` or `.yarnrc.yml`, restoring any previous registry. Then run `vp install`.
@@ -1,6 +1,6 @@
1
1
  # Upgrade to Vitest 5
2
2
 
3
- Vite+ bundles Vitest `5.0.1`. Use Node `^22.18.0 || ^24.11.0 || >=26.0.0` for the CLI and tests.
3
+ Vite+ bundles Vitest `5.0.3`. Use Node `^22.18.0 || ^24.11.0 || >=26.0.0` for the CLI and tests.
4
4
 
5
5
  ## Before you migrate
6
6
 
@@ -126,7 +126,7 @@ Review calls with benchmark options, imported or reassigned callbacks, callback
126
126
 
127
127
  ## Entry points and packages
128
128
 
129
- Use `vite-plus/test` for assertions and supported runner APIs. Keep coverage providers and `@vitest/ui` at the bundled runner's exact version, `5.0.1`. Keep `@vitest/web-worker` aligned when your project uses it.
129
+ Use `vite-plus/test` for assertions and supported runner APIs. Keep coverage providers and `@vitest/ui` at the bundled runner's exact version, `5.0.3`. Keep `@vitest/web-worker` aligned when your project uses it.
130
130
 
131
131
  | v4 import | v5 import or action |
132
132
  | ---------------------------------------- | --------------------------------------------------------------------------- |
package/docs/guide/vpx.md CHANGED
@@ -31,7 +31,7 @@ vpx <pkg[@version]> [args...]
31
31
  ```bash
32
32
  vpx eslint .
33
33
  vpx create-vue my-app
34
- vpx typescript@5.5.4 tsc --version
34
+ vpx oxlint@1.85.0 --version
35
35
  vpx -p cowsay -c 'echo "hi" | cowsay'
36
36
  ```
37
37
 
@@ -62,5 +62,5 @@ Examples:
62
62
 
63
63
  ```bash
64
64
  vp dlx create-vite
65
- vp dlx typescript tsc --version
65
+ vp dlx oxlint@1.85.0 --version
66
66
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plus",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "The Unified Toolchain for the Web",
5
5
  "homepage": "https://viteplus.dev/guide",
6
6
  "bugs": {
@@ -338,20 +338,20 @@
338
338
  }
339
339
  },
340
340
  "dependencies": {
341
- "@oxc-project/types": "=0.151.0",
341
+ "@oxc-project/types": "=0.153.0",
342
342
  "@oxlint/plugins": "=1.79.0",
343
- "@vitest/browser": "5.0.1",
344
- "@vitest/browser-preview": "5.0.1",
345
- "@vitest/mocker": "5.0.1",
346
- "@vitest/pretty-format": "5.0.1",
347
- "@vitest/snapshot": "5.0.1",
348
- "@vitest/spy": "5.0.1",
349
- "@vitest/utils": "5.0.1",
350
- "oxfmt": "=0.70.0",
351
- "oxlint": "=1.85.0",
343
+ "@vitest/browser": "5.0.3",
344
+ "@vitest/browser-preview": "5.0.3",
345
+ "@vitest/mocker": "5.0.3",
346
+ "@vitest/pretty-format": "5.0.3",
347
+ "@vitest/snapshot": "5.0.3",
348
+ "@vitest/spy": "5.0.3",
349
+ "@vitest/utils": "5.0.3",
350
+ "oxfmt": "=0.72.0",
351
+ "oxlint": "=1.87.0",
352
352
  "oxlint-tsgolint": "=7.0.2003",
353
- "vite": "npm:@voidzero-dev/vite-plus-core@1.0.0",
354
- "vitest": "5.0.1"
353
+ "vite": "npm:@voidzero-dev/vite-plus-core@1.1.0",
354
+ "vitest": "5.0.3"
355
355
  },
356
356
  "devDependencies": {
357
357
  "@emnapi/core": "2.0.0-alpha.5",
@@ -359,11 +359,10 @@
359
359
  "@napi-rs/cli": "^3.10.0",
360
360
  "@nkzw/safe-word-list": "^3.1.0",
361
361
  "@types/cross-spawn": "^6.0.6",
362
- "@types/semver": "^7.8.0",
363
362
  "@types/validate-npm-package-name": "^4.0.2",
364
- "@vitest/browser-playwright": "5.0.1",
363
+ "@vitest/browser-playwright": "5.0.3",
365
364
  "@vitest/browser-webdriverio": "5.0.0",
366
- "@voidzero-dev/vite-plus-prompts": "1.0.0",
365
+ "@voidzero-dev/vite-plus-prompts": "1.1.0",
367
366
  "bingo": "^0.9.3",
368
367
  "cac": "^7.0.0",
369
368
  "cross-spawn": "^7.0.5",
@@ -371,19 +370,20 @@
371
370
  "detect-newline": "^4.0.1",
372
371
  "glob": "^13.0.0",
373
372
  "jsonc-parser": "^3.3.1",
374
- "lint-staged": "^17.5.1",
373
+ "lint-staged": "^17.6.0",
375
374
  "minimatch": "^10.0.3",
376
375
  "nanotar": "^0.3.0",
377
376
  "picocolors": "^1.1.1",
378
- "semver": "^7.8.0",
379
377
  "tsdown": "^0.23.0",
380
378
  "validate-npm-package-name": "^7.0.2",
379
+ "verkit": "^0.5.0",
381
380
  "yaml": "^2.8.1",
382
381
  "zod": "^3.25.76"
383
382
  },
384
383
  "peerDependencies": {
385
- "@vitest/browser-playwright": "5.0.1",
386
- "@vitest/browser-webdriverio": "^5.0.0-beta.5 || >=5.0.0"
384
+ "@vitest/browser-playwright": "5.0.3",
385
+ "@vitest/browser-webdriverio": "^5.0.0-beta.5 || >=5.0.0",
386
+ "playwright": "*"
387
387
  },
388
388
  "peerDependenciesMeta": {
389
389
  "@vitest/browser-playwright": {
@@ -391,6 +391,9 @@
391
391
  },
392
392
  "@vitest/browser-webdriverio": {
393
393
  "optional": true
394
+ },
395
+ "playwright": {
396
+ "optional": true
394
397
  }
395
398
  },
396
399
  "napi": {
@@ -411,14 +414,14 @@
411
414
  "node": "^22.18.0 || ^24.11.0 || >=26.0.0"
412
415
  },
413
416
  "optionalDependencies": {
414
- "@voidzero-dev/vite-plus-darwin-arm64": "1.0.0",
415
- "@voidzero-dev/vite-plus-darwin-x64": "1.0.0",
416
- "@voidzero-dev/vite-plus-linux-arm64-gnu": "1.0.0",
417
- "@voidzero-dev/vite-plus-linux-arm64-musl": "1.0.0",
418
- "@voidzero-dev/vite-plus-linux-x64-gnu": "1.0.0",
419
- "@voidzero-dev/vite-plus-linux-x64-musl": "1.0.0",
420
- "@voidzero-dev/vite-plus-win32-x64-msvc": "1.0.0",
421
- "@voidzero-dev/vite-plus-win32-arm64-msvc": "1.0.0"
417
+ "@voidzero-dev/vite-plus-darwin-arm64": "1.1.0",
418
+ "@voidzero-dev/vite-plus-darwin-x64": "1.1.0",
419
+ "@voidzero-dev/vite-plus-linux-arm64-gnu": "1.1.0",
420
+ "@voidzero-dev/vite-plus-linux-arm64-musl": "1.1.0",
421
+ "@voidzero-dev/vite-plus-linux-x64-gnu": "1.1.0",
422
+ "@voidzero-dev/vite-plus-linux-x64-musl": "1.1.0",
423
+ "@voidzero-dev/vite-plus-win32-x64-msvc": "1.1.0",
424
+ "@voidzero-dev/vite-plus-win32-arm64-msvc": "1.1.0"
422
425
  },
423
426
  "scripts": {
424
427
  "build": "oxnode -C dev ./build.ts",