vite-plus 1.4.0 → 1.5.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.
- package/binding/index.cjs +54 -54
- package/binding/index.d.cts +31 -0
- package/dist/{agent-D8oxxhVR.js → agent-DkQD3xqe.js} +2 -2
- package/dist/bin.js +15 -7
- package/dist/config/bin.js +5 -5
- package/dist/{constants-DRUnJ_Dz.js → constants-D2P2aVKb.js} +6 -2
- package/dist/create/bin.js +114 -64
- package/dist/{define-config-rPhYIFSn.d.ts → define-config-BrvHRi-G.d.ts} +30 -2
- package/dist/{define-config-Cv2P6NT2.cjs → define-config-CwtQqYC1.cjs} +35 -3
- package/dist/{define-config-ChwJcu5e.js → define-config-wR57OZG_.js} +30 -5
- package/dist/define-config.cjs +2 -1
- package/dist/define-config.d.ts +2 -2
- package/dist/define-config.js +1 -1
- package/dist/{editor-ClL78D8u.js → editor-aOy1T15H.js} +1266 -884
- package/dist/hooks/bin.js +2 -2
- package/dist/{hooks-xRcJPc-O.js → hooks-w_e2whkQ.js} +40 -21
- package/dist/index.cjs +4 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/lint-plugins.cjs +1 -1
- package/dist/migration/bin.js +1302 -311
- package/dist/migration/compat/worker.js +1 -1
- package/dist/{oxlint-plugin-config-BVpqYdcC.js → oxlint-plugin-config-CHsI_zKo.js} +1 -1
- package/dist/oxlint-plugin.js +29 -4
- package/dist/pack-bin.js +2 -2
- package/dist/{package-DzsomcUD.js → package-DfFo6-E-.js} +1 -1
- package/dist/{prompts-GL1vj0wk.js → prompts-C7DI63WP.js} +3 -3
- package/dist/register.d.ts +1 -0
- package/dist/register.js +12 -0
- package/dist/{report-DLHO30yZ.js → report-BEdpIQvC.js} +2 -0
- package/dist/{resolve-vite-config-QO6cC0SP.js → resolve-vite-config-33bzSaeT.js} +1 -1
- package/dist/{resolve-vite-config-Dn5896A4.js → resolve-vite-config-Cx3cnVVI.js} +2 -2
- package/dist/script-esm-hooks.d.ts +5 -2
- package/dist/script-esm-hooks.js +5 -2
- package/dist/script-preload.cjs +24 -1
- package/dist/script-register.js +7 -2
- package/dist/script-watch.js +135 -41
- package/dist/staged/bin.js +2 -2
- package/dist/sync-versions/bin.js +1 -1
- package/dist/toolchain.js +13 -13
- package/dist/toolchain.json +13 -13
- package/dist/{tsconfig-Do6MAG_f.js → tsconfig-BE3Wj9OX.js} +1 -1
- package/dist/{tsconfig-LE_mAwe_.js → tsconfig-shNmmCE_.js} +2 -2
- package/dist/version.js +2 -2
- package/dist/versions.js +6 -6
- package/docs/config/check.md +2 -0
- package/docs/config/fmt.md +1 -1
- package/docs/config/lint.md +1 -1
- package/docs/config/run.md +6 -2
- package/docs/config/staged.md +1 -1
- package/docs/guide/check.md +5 -1
- package/docs/guide/ci.md +2 -2
- package/docs/guide/create.md +1 -1
- package/docs/guide/env.md +1 -1
- package/docs/guide/global-cli.md +12 -8
- package/docs/guide/homebrew.md +127 -0
- package/docs/guide/ide-integration.md +1 -3
- package/docs/guide/implode.md +5 -3
- package/docs/guide/local-cli.md +21 -0
- package/docs/guide/migrate-rules.md +81 -22
- package/docs/guide/migrate.md +9 -9
- package/docs/guide/run.md +23 -1
- package/docs/guide/test.md +1 -1
- package/docs/guide/troubleshooting.md +1 -1
- package/docs/guide/upgrade.md +12 -6
- package/docs/guide/vitest-v5.md +2 -2
- package/docs/guide/vpx.md +44 -4
- package/package.json +39 -33
|
@@ -200,7 +200,7 @@ Object-valued nested npm and Bun overrides are preserved: they are user-defined
|
|
|
200
200
|
|
|
201
201
|
`vite` and `vite/*` imports are rewritten to `vite-plus` **only in config entry files**: `vite.config.*`, `vitest.config.*`, and any config file the migration resolved. Every other file keeps its `vite` imports, for two reasons:
|
|
202
202
|
|
|
203
|
-
- `vite-plus` is not a guaranteed superset of Vite's exposed surface. It owns only `defineConfig`, `defineProject`, and `
|
|
203
|
+
- `vite-plus` is not a guaranteed superset of Vite's exposed surface. It owns only `defineConfig`, `defineProject`, `lazyPlugins`, and `resolveConfigFromFile`, so rewriting a pass-through symbol such as `createBuilder` or `loadConfigFromFile` (including in `typeof import('vite')` type positions) can break.
|
|
204
204
|
- An unrewritten `vite` import still resolves through the `@voidzero-dev/vite-plus-core` alias in a Vite+ project.
|
|
205
205
|
|
|
206
206
|
Plugin packages (an unscoped name starting with `vite-plugin-` or `unplugin-`, or `vite` in `peerDependencies`/`dependencies`) skip the rewrite even in config files. Only the `vite` specifier is in scope for this rule.
|
|
@@ -250,18 +250,20 @@ The `prefer-vite-plus-imports` lint rule follows the same Nuxt exception, so lin
|
|
|
250
250
|
|
|
251
251
|
Migration rewrites commands provided by the Vite+ toolchain in `package.json` scripts while preserving their arguments:
|
|
252
252
|
|
|
253
|
-
| Before | After
|
|
254
|
-
| ------------- |
|
|
255
|
-
| `vite` | `vp dev`, or the matching `vp` subcommand
|
|
256
|
-
| `vitest` | `vp test`
|
|
257
|
-
| `oxlint` | `vp lint`
|
|
258
|
-
| `oxfmt` | `vp fmt`
|
|
259
|
-
| `tsdown` | `vp pack`
|
|
260
|
-
| `lint-staged` | `vp staged`
|
|
261
|
-
| `eslint` | `vp lint`, when its optional migration runs
|
|
262
|
-
| `prettier` | `vp fmt`, when its optional migration runs
|
|
263
|
-
| `tsup` | `vp pack`, when its optional migration runs
|
|
264
|
-
| `tsx` | `vpx`, when its optional migration runs
|
|
253
|
+
| Before | After |
|
|
254
|
+
| ------------- | -------------------------------------------- |
|
|
255
|
+
| `vite` | `vp dev`, or the matching `vp` subcommand |
|
|
256
|
+
| `vitest` | `vp test` |
|
|
257
|
+
| `oxlint` | `vp lint` |
|
|
258
|
+
| `oxfmt` | `vp fmt` |
|
|
259
|
+
| `tsdown` | `vp pack` |
|
|
260
|
+
| `lint-staged` | `vp staged` |
|
|
261
|
+
| `eslint` | `vp lint`, when its optional migration runs |
|
|
262
|
+
| `prettier` | `vp fmt`, when its optional migration runs |
|
|
263
|
+
| `tsup` | `vp pack`, when its optional migration runs |
|
|
264
|
+
| `tsx` | `vpx`, when its optional migration runs |
|
|
265
|
+
| `oxnode` | `vpx`, when its optional migration runs |
|
|
266
|
+
| `ts-node` | `vpx`, for supported transpile-only commands |
|
|
265
267
|
|
|
266
268
|
For commands launched through `bunx`, migration preserves `bunx` and its `--bun` flag (keeping the user's chosen runtime) and rewrites only the managed command. tsx is the exception: `bunx tsx` becomes `vpx`, and `bunx --bun tsx` keeps tsx (see [tsx to `vpx`](#tsx-to-vpx)). This also works when `bunx` follows a command-launcher delimiter such as `run` or `--`:
|
|
267
269
|
|
|
@@ -278,23 +280,80 @@ Unrelated `bunx` commands and other package-executor forms remain unchanged.
|
|
|
278
280
|
|
|
279
281
|
When a `package.json` script, a lint-staged task, or a `#!/usr/bin/env tsx` shebang runs [tsx](https://tsx.is), migration offers to move it to [`vpx`](/guide/vpx), Vite+'s TypeScript script runner. It rewrites scripts and lint-staged tasks in `package.json` and JSON lint-staged files, and `#!/usr/bin/env tsx` shebangs in script files:
|
|
280
282
|
|
|
281
|
-
| Before | After
|
|
282
|
-
| -------------------------------------------------------------------------- |
|
|
283
|
-
| `tsx src/seed.ts --rows 10` | `vpx src/seed.ts --rows 10`
|
|
284
|
-
| `tsx watch --include "*.json" src/a.ts` | `vpx --watch --include "*.json" src/a.ts`
|
|
285
|
-
| `npx tsx a.ts`, `pnpm exec tsx a.ts`, `pnpm dlx tsx a.ts`, `bunx tsx a.ts` | `vpx a.ts`
|
|
286
|
-
| `node --import tsx ./a.ts` | `
|
|
287
|
-
| `
|
|
288
|
-
| `
|
|
283
|
+
| Before | After |
|
|
284
|
+
| -------------------------------------------------------------------------- | -------------------------------------------------- |
|
|
285
|
+
| `tsx src/seed.ts --rows 10` | `vpx src/seed.ts --rows 10` |
|
|
286
|
+
| `tsx watch --include "*.json" src/a.ts` | `vpx --watch --include "*.json" src/a.ts` |
|
|
287
|
+
| `npx tsx a.ts`, `pnpm exec tsx a.ts`, `pnpm dlx tsx a.ts`, `bunx tsx a.ts` | `vpx a.ts` |
|
|
288
|
+
| `node --import tsx ./a.ts` | `node --import vite-plus/register ./a.ts` |
|
|
289
|
+
| `node --import=tsx --test` | `node --import=vite-plus/register --test` |
|
|
290
|
+
| `NODE_OPTIONS='--import tsx' mocha` | `NODE_OPTIONS='--import vite-plus/register' mocha` |
|
|
291
|
+
| `cross-env NODE_ENV=dev tsx a.ts` | `cross-env NODE_ENV=dev vpx a.ts` |
|
|
292
|
+
| `concurrently "tsx watch a.ts" "vp dev"` | `concurrently "vpx --watch a.ts" "vp dev"` |
|
|
289
293
|
|
|
290
294
|
`tsx watch` becomes `vpx --watch`, never `vpx watch`, which runs the npm package `watch`. Node.js options and tsx watch options keep their order, and `--no-cache` is dropped. A quoted command is rewritten only for programs that run it, such as `concurrently`, `nodemon --exec`, `sh -c`, and `cross-env-shell`; a quoted argument of other programs, as in `echo "tsx a.ts"`, is data. `vpx` needs the same Node.js versions as Vite+ itself, and migration already upgrades incompatible runtime pins to them (see [Vitest 5](/guide/vitest-v5)).
|
|
291
295
|
|
|
292
|
-
|
|
296
|
+
The plain `node --import tsx` and `node --import=tsx` forms keep Node.js, its options, wrappers, and arguments. They use [`vite-plus/register`](/guide/vpx#using-nodejs-directly), so Node.js retains its eval, test discovery, and native watch behavior. Literal `NODE_OPTIONS` assignments also migrate, including assignments through `cross-env` and known command launchers. `vite-plus/register` accepts `TSX_TSCONFIG_PATH` as a fallback. Assignments that also load a legacy tsx hook, or reach a command that still needs tsx, stay unchanged.
|
|
297
|
+
|
|
298
|
+
For the tsx executable and legacy loader forms such as `--loader tsx/esm` and `-r tsx/cjs`, migration keeps the existing `vpx` rules. It keeps tsx, with a warning, for `--eval`, `--print`, or `--check`, the REPL, `--test` without files or in watch mode, an entry without a file extension, or commands that load tsx through `NODE_OPTIONS`. Commands with pipes, variables, or subshells also stay unchanged. `vpx` accepts `TSX_TSCONFIG_PATH` as a fallback too; an explicit `--tsconfig` takes priority.
|
|
299
|
+
|
|
300
|
+
Both migration paths read the scripts a command names, including local `--require` and `--import` modules. They keep tsx when a script does not exist yet, as when an earlier command generates it, or when the Vite+ loader would fail on it: a `require()` of `./a.js` that only tsx resolves to `a.ts`, a `.cts` file with `import` or `export`, or a file that mixes `import` with `__dirname`, `__filename`, `require()`, or `module.exports` in a package without `"type": "module"`. This check skips globs and scripts after a `cd` or another shell state change, and reads only the files a command names, not the modules they import. It does not look for other compiler differences, such as standard decorators, tsconfig `paths` in `require()`, or a tsconfig `module` of `node16` or `nodenext`; the loader reports those when the script runs. A package that lists tsx in `dependencies`, `optionalDependencies`, or `peerDependencies` keeps it too, since the replacement comes from the `vite-plus` devDependency.
|
|
293
301
|
|
|
294
302
|
Migration removes the `tsx` devDependency only when nothing uses tsx anymore: no kept script, no import of `tsx` or its subpaths such as `tsx/esm/api` (in source, build output, or a `package.json` `imports` alias), no shebang, no tool setting such as `--import=tsx` in `package.json` or a JSON or JavaScript config, and no tsx command in CI workflows, git hooks, or shell scripts. The root's dependency stays while any workspace package still uses tsx, and a package's dependency stays while a nested package under it does. When tsx stays, the warning names what still uses it.
|
|
295
303
|
|
|
304
|
+
Tool configurations and source files need manual edits. For example, change `nodeArguments: ['--import=tsx']` to `nodeArguments: ['--import=vite-plus/register']`, or Mocha's `"import": "tsx"` setting to `"import": "vite-plus/register"`. Keep tsx if the project uses its programmatic APIs.
|
|
305
|
+
|
|
296
306
|
See [Coming from tsx](/guide/vpx#coming-from-tsx) for the other differences.
|
|
297
307
|
|
|
308
|
+
### oxnode to `vpx`
|
|
309
|
+
|
|
310
|
+
Migration offers to replace `oxnode`, the command from `@oxc-node/cli`, with `vpx`. It rewrites `package.json` scripts, lint-staged tasks in `package.json` and JSON files, and `#!/usr/bin/env oxnode` shebangs. Node.js preload shebangs such as `#!/usr/bin/env -S node --import @oxc-node/core/register` keep Node.js and use `vite-plus/register`, including in extensionless scripts. The migration preserves the shebang's `env` syntax, flags, and relative paths. On a project that already uses Vite+, run `vp migrate --full` to include this migration.
|
|
311
|
+
|
|
312
|
+
| Before | After |
|
|
313
|
+
| --------------------------------------------------------- | ---------------------------------------------------- |
|
|
314
|
+
| `oxnode ./scripts/seed.ts` | `vpx ./scripts/seed.ts` |
|
|
315
|
+
| `oxnode -C dev ./build.ts` | `vpx -C dev ./build.ts` |
|
|
316
|
+
| `oxnode watch --include "config/*.json" ./server.ts` | `vpx --watch --include "config/*.json" ./server.ts` |
|
|
317
|
+
| `node --import @oxc-node/core/register ./scripts/seed.ts` | `node --import vite-plus/register ./scripts/seed.ts` |
|
|
318
|
+
| `NODE_OPTIONS='--import @oxc-node/core/register' mocha` | `NODE_OPTIONS='--import vite-plus/register' mocha` |
|
|
319
|
+
|
|
320
|
+
The `node --import @oxc-node/core/register` and `register.mjs` forms keep Node.js, its wrappers, arguments, and native watch, eval, and test modes. Literal `NODE_OPTIONS` assignments also use the public preload. Commands that use the `oxnode` executable follow the `vpx` rules instead: `oxnode --watch` stays unchanged because it starts Node.js's watcher, while `oxnode watch` and `vpx --watch` use oxc-node's watcher.
|
|
321
|
+
|
|
322
|
+
Commands that explicitly set `OXC_TRANSFORM_ALL` to anything other than `typescript` stay unchanged. Nonempty `VP_SCRIPT_TSCONFIG` and `TSX_TSCONFIG_PATH` assignments also stay unchanged because they would change config selection. Commands that read an environment file stay unchanged because it can select a different transform mode. Migration checks the named script and local preloads for standalone oxc-node API usage, which would configure a different loader after migration; it does not follow their imports.
|
|
323
|
+
|
|
324
|
+
Custom asynchronous `--loader` and `--experimental-loader` hooks stay in their original order when the register import changes. This supports project loaders for resolution and assets alongside the Vite+ TypeScript loader. It does not establish compatibility with a second TypeScript transformer or arbitrary synchronous `module.registerHooks()` chains.
|
|
325
|
+
|
|
326
|
+
Direct `oxnode` commands and Node.js preload commands stay unchanged when an additional `--require` or `--import` can change loader settings. Node.js commands also stay unchanged when inline code still calls standalone oxc-node APIs. Migration checks explicit local shebang loaders relative to the owning package for standalone API references, without following their imports. It leaves the paths unchanged: at runtime, relative loader paths use the caller's working directory, not the script's directory.
|
|
327
|
+
|
|
328
|
+
The `@oxc-node/cli` and `@oxc-node/core` development dependencies are removed only when no remaining use needs them. Loader references, API imports, CI commands, hooks, and shell scripts can keep these dependencies installed. Migration also checks files named by `--env-file` and `--env-file-if-exists`, regardless of their filename. If it cannot resolve or read an environment file, it keeps the dependencies for manual review. Runtime and peer dependencies stay in place.
|
|
329
|
+
|
|
330
|
+
### ts-node to `vpx`
|
|
331
|
+
|
|
332
|
+
Migration offers to replace supported ts-node commands with `vpx` only when type-checking is explicitly disabled. Plain `ts-node` type-checks before execution; `vpx` does not. Commands that still type-check stay unchanged with a warning, even when another option enables transpile-only mode.
|
|
333
|
+
|
|
334
|
+
| Before | After |
|
|
335
|
+
| --------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
|
|
336
|
+
| `ts-node --transpileOnly ./scripts/seed.ts` | `vpx ./scripts/seed.ts` |
|
|
337
|
+
| `ts-node -T -P tsconfig.scripts.json ./scripts/seed.ts` | `vpx --tsconfig=tsconfig.scripts.json ./scripts/seed.ts` |
|
|
338
|
+
| `ts-node-transpile-only ./scripts/seed.ts` | `vpx ./scripts/seed.ts` |
|
|
339
|
+
| `node -r ts-node/register/transpile-only ./scripts/seed.ts` | `node --import vite-plus/register ./scripts/seed.ts` |
|
|
340
|
+
| `node --loader ts-node/esm/transpile-only ./scripts/seed.ts` | `node --import vite-plus/register ./scripts/seed.ts` |
|
|
341
|
+
| `NODE_OPTIONS='--require ts-node/register/transpile-only' node ./scripts/seed.ts` | `NODE_OPTIONS='--import vite-plus/register' node ./scripts/seed.ts` |
|
|
342
|
+
|
|
343
|
+
The migration also reads `transpileOnly` and `typeCheck` from local JSONC tsconfig files, local `extends` chains, and literal `TS_NODE_TRANSPILE_ONLY` / `TS_NODE_TYPE_CHECK` assignments. `-P`, `--project`, and `TS_NODE_PROJECT` select the configuration. A directory passed to `-P` or `--project` resolves to its `tsconfig.json`; a directory in `TS_NODE_PROJECT` stays unchanged. When ts-node discovers a config implicitly, migration pins that file with `--tsconfig` so `vpx` uses it for the whole run. `ts-node-esm` and `--esm` are supported when type-checking is disabled.
|
|
344
|
+
|
|
345
|
+
If an existing config and its local `extends` chain omit both `target` and `useDefineForClassFields`, the command stays unchanged with a warning. ts-node defaults to assignment semantics for class fields in this case, while `vpx` defaults to define semantics. Set `compilerOptions.useDefineForClassFields` to `false` to preserve assignment semantics before migrating.
|
|
346
|
+
|
|
347
|
+
Supported Node.js preload commands keep Node.js and replace both the old loader option and module with `--import vite-plus/register`. Literal `NODE_OPTIONS` assignments also migrate when they reach a known `node` command and pass the same checks. An existing `TS_NODE_PROJECT` file selection stays in place. A preload that needs an implicit config pinned stays unchanged: set `TS_NODE_PROJECT` to the config file before migration, because Node.js cannot take `--tsconfig`.
|
|
348
|
+
|
|
349
|
+
Preloads also stay unchanged when the working directory has no config but the entry file would discover a different one. Migration does not scan imported modules for additional config files.
|
|
350
|
+
|
|
351
|
+
Custom compilers, transpilers, SWC, ts-node compiler overrides, unsupported configuration inheritance, eval, and REPL usage stay unchanged. Environment files, Node.js config files, additional preloads, and unsupported `NODE_OPTIONS` assignments also keep the original command because they can change ts-node settings before registration. Nonempty `VP_SCRIPT_TSCONFIG`, `TSX_TSCONFIG_PATH`, or `OXC_TSCONFIG_PATH` assignments stay unchanged because they would select a different config. Migration checks named scripts for known module incompatibilities; it does not follow their imports. Migrated scripts use the [tsconfig and module rules of `vpx`](/guide/vpx#tsconfig).
|
|
352
|
+
|
|
353
|
+
Entries with static imports or re-exports of CommonJS values also stay unchanged. This includes named, namespace, and default bindings, `.js` files in CommonJS packages, and package entry points. Migration checks both import and require resolution without executing dependencies. Unresolved targets and targets that differ between these modes stay unchanged for manual review. Even `esModuleInterop: true` can unwrap a CommonJS `__esModule.default` value differently from Node.js, so that setting alone does not make a default import safe. Type-only imports and exports, imports used only for side effects, checked ES module targets, and named Node.js built-in bindings do not trigger this check.
|
|
354
|
+
|
|
355
|
+
As with oxnode, migration rewrites package scripts, JSON lint-staged tasks, and supported env shebangs. Shebangs that need a pinned config stay unchanged because the config path depends on the caller's working directory. Existing Vite+ projects use `vp migrate --full`. The `ts-node` development dependency is removed only when no remaining command, loader, API import, or config reference needs it. Runtime and peer dependencies remain, and `typescript` is not removed.
|
|
356
|
+
|
|
298
357
|
## Continuous Integration Rules
|
|
299
358
|
|
|
300
359
|
Migration replaces exact `voidzero-dev/setup-vp@v1` references in GitHub Actions workflows and composite actions under `.github` with the latest exact `setup-vp` release known to that Vite+ version. The frozen `v1` tag does not receive new releases. Existing exact versions and commit SHAs are left unchanged.
|
package/docs/guide/migrate.md
CHANGED
|
@@ -8,7 +8,7 @@ import { migrationPrompt, upgradePrompt } from '../.vitepress/theme/data/migrati
|
|
|
8
8
|
|
|
9
9
|
## Overview
|
|
10
10
|
|
|
11
|
-
This command is the starting point for consolidating separate Vite, Vitest, Oxlint, Oxfmt, ESLint, Prettier, tsdown, tsup, and
|
|
11
|
+
This command is the starting point for consolidating separate Vite, Vitest, Oxlint, Oxfmt, ESLint, Prettier, tsdown, tsup, tsx, oxnode, and ts-node setups into Vite+.
|
|
12
12
|
|
|
13
13
|
Use it when you want to take an existing project and move it onto the Vite+ defaults instead of wiring each tool by hand.
|
|
14
14
|
|
|
@@ -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.
|
|
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.5.0` release:
|
|
99
99
|
|
|
100
100
|
::: code-group
|
|
101
101
|
|
|
102
102
|
```bash [pnpm]
|
|
103
|
-
pnpm dlx --package=vite-plus@1.
|
|
103
|
+
pnpm dlx --package=vite-plus@1.5.0 vp migrate --no-interactive
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
```bash [npm]
|
|
107
|
-
npx --package=vite-plus@1.
|
|
107
|
+
npx --package=vite-plus@1.5.0 vp migrate --no-interactive
|
|
108
108
|
```
|
|
109
109
|
|
|
110
110
|
:::
|
|
111
111
|
|
|
112
|
-
Replace `1.
|
|
112
|
+
Replace `1.5.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
|
|
154
|
+
Vitest is automatically migrated through `vp migrate`. `vite-plus` re-exports upstream `vitest@5.1.0` 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
|
|
|
@@ -234,11 +234,11 @@ export default defineConfig({
|
|
|
234
234
|
});
|
|
235
235
|
```
|
|
236
236
|
|
|
237
|
-
When no existing hook policy owns the workflow, `vp migrate` can move supported lint-staged rules and remove the old configuration and dependency. If an existing hook tool is preserved, keep lint-staged in place until you convert that hook policy manually. See the [Commit
|
|
237
|
+
When no existing hook policy owns the workflow, `vp migrate` can move supported lint-staged rules and remove the old configuration and dependency. If an existing hook tool is preserved, keep lint-staged in place until you convert that hook policy manually. See the [Commit Hooks](/guide/commit-hooks) and [Staged Config](/config/staged) for details.
|
|
238
238
|
|
|
239
239
|
### Git hook tools
|
|
240
240
|
|
|
241
|
-
The `vp migrate` command does not automatically convert Husky setups. When Husky is detected, Vite+ leaves its hooks, lifecycle scripts, configuration, and dependencies unchanged and shows a warning. You can migrate the project manually using the [Commit
|
|
241
|
+
The `vp migrate` command does not automatically convert Husky setups. When Husky is detected, Vite+ leaves its hooks, lifecycle scripts, configuration, and dependencies unchanged and shows a warning. You can migrate the project manually using the [Commit Hooks](/guide/commit-hooks).
|
|
242
242
|
|
|
243
243
|
Existing project-owned Vite+ hooks are also preserved. The default staged workflow is introduced only when no existing hook policy is found.
|
|
244
244
|
|
|
@@ -246,7 +246,7 @@ If your project currently uses `lefthook`, `simple-git-hooks`, or `yorkie`, `vp
|
|
|
246
246
|
|
|
247
247
|
If you want to move one of those tools over to Vite+ manually, you can follow these steps. First, move your staged-file commands into the `staged` block within `vite.config.ts`. Then, update your lifecycle script so it runs `vp config`. You will also need to create a Vite+ hook at `.vite-hooks/pre-commit` that runs `vp staged`. Run `vp hooks enable` (or `vp config`) to install the dispatcher and set `core.hooksPath`. Finally, once you have confirmed that the Vite+ hook is working as expected, you can remove the old tool's configuration and dependency.
|
|
248
248
|
|
|
249
|
-
Use `vp hooks status` to verify the dispatcher is active, and `vp hooks disable` if you need to turn it off again in this clone. You can find more details about the full Vite+ hook setup in the [Commit
|
|
249
|
+
Use `vp hooks status` to verify the dispatcher is active, and `vp hooks disable` if you need to turn it off again in this clone. You can find more details about the full Vite+ hook setup in the [Commit Hooks](/guide/commit-hooks).
|
|
250
250
|
|
|
251
251
|
## Examples
|
|
252
252
|
|
package/docs/guide/run.md
CHANGED
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
`vpr` is available as a standalone shorthand for `vp run`. All examples below work with both `vp run` and `vpr`.
|
|
7
7
|
:::
|
|
8
8
|
|
|
9
|
+
::: info
|
|
10
|
+
Vite Task parses simple commands and `&&` chains itself instead of passing them to a shell, so they behave the same on every platform. Other shell syntax, such as pipes or redirects, may behave differently across platforms.
|
|
11
|
+
:::
|
|
12
|
+
|
|
9
13
|
## Overview
|
|
10
14
|
|
|
11
15
|
Use `vp run` with existing `package.json` scripts:
|
|
@@ -232,7 +236,7 @@ vp run -w build
|
|
|
232
236
|
|
|
233
237
|
## Compound Commands
|
|
234
238
|
|
|
235
|
-
Commands joined with `&&` are split into independent sub-tasks. Each sub-task is cached separately when [caching is enabled](/guide/cache#when-is-caching-enabled). This works for both `vite.config.ts` tasks and `package.json` scripts:
|
|
239
|
+
Commands joined with `&&` are split into independent sub-tasks, unless they also use other shell syntax. Each sub-task is cached separately when [caching is enabled](/guide/cache#when-is-caching-enabled). This works for both `vite.config.ts` tasks and `package.json` scripts:
|
|
236
240
|
|
|
237
241
|
```json [package.json]
|
|
238
242
|
{
|
|
@@ -266,6 +270,24 @@ $ vp build ○ cache miss: 'index.html' modified, executing
|
|
|
266
270
|
vp run: 1/2 cache hit (50%), 2/2 successful, 120ms saved.
|
|
267
271
|
```
|
|
268
272
|
|
|
273
|
+
### Environment Variable Prefixes
|
|
274
|
+
|
|
275
|
+
Environment variable prefixes such as `FOO=bar command` work on every platform, without extra tools like `cross-env`:
|
|
276
|
+
|
|
277
|
+
```json [package.json]
|
|
278
|
+
{
|
|
279
|
+
"scripts": {
|
|
280
|
+
"build": "NODE_ENV=production node build.js"
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
A prefix applies only to the command it directly precedes. In `FOO=1 a && b`, `FOO` is set for `a` but not for `b`.
|
|
286
|
+
|
|
287
|
+
::: warning
|
|
288
|
+
Prefixes may not work on every platform when the command also uses other shell syntax.
|
|
289
|
+
:::
|
|
290
|
+
|
|
269
291
|
### Nested `vp run`
|
|
270
292
|
|
|
271
293
|
When a command contains `vp run`, Vite Task inlines it as separate tasks instead of spawning a nested process. Each sub-task is cached independently and output stays flat:
|
package/docs/guide/test.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
`vp test` runs tests with [Vitest](https://vitest.dev).
|
|
4
4
|
|
|
5
|
-
Vite+ depends on Vitest `5.0
|
|
5
|
+
Vite+ depends on Vitest `5.1.0`, which 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
|
`vp test` resolves Vitest from `vite-plus`'s dependencies first, then from your project.
|
|
8
8
|
|
|
@@ -72,7 +72,7 @@ If `vp staged` fails or your pre-commit hook does not run:
|
|
|
72
72
|
- if status shows `Preference: disabled (local)`, re-enable with `vp hooks enable`
|
|
73
73
|
- check whether hooks were skipped intentionally through `VP_GIT_HOOKS=0`
|
|
74
74
|
|
|
75
|
-
To stop hooks in this clone without deleting project policy files, run `vp hooks disable`. See the [Commit
|
|
75
|
+
To stop hooks in this clone without deleting project policy files, run `vp hooks disable`. See the [Commit Hooks](/guide/commit-hooks) for the full workflow.
|
|
76
76
|
|
|
77
77
|
A minimal staged config looks like this:
|
|
78
78
|
|
package/docs/guide/upgrade.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Upgrading Vite+
|
|
2
2
|
|
|
3
|
-
Use `vp upgrade` to update the global `vp` binary. To update the local `vite-plus` package in a project, see [Update Vite+](/guide/upgrade-project).
|
|
3
|
+
Use `vp upgrade` to update the global `vp` binary, or [Homebrew](#homebrew) if it owns your installation. To update the local `vite-plus` package in a project, see [Update Vite+](/guide/upgrade-project).
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
@@ -22,7 +22,7 @@ vp toolchain vite rolldown oxc
|
|
|
22
22
|
vp toolchain --json
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
The command uses the local `vite-plus` package when the project has one. Use `--global` to show the release for the global `vp` command:
|
|
25
|
+
The command uses the local `vite-plus` package when the project has one. Use `--global` or `-g` to show the release for the global `vp` command:
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
28
|
vp toolchain --global
|
|
@@ -87,15 +87,19 @@ Older versions are pruned automatically after each upgrade. The active version a
|
|
|
87
87
|
|
|
88
88
|
### Homebrew
|
|
89
89
|
|
|
90
|
-
Homebrew owns its installed binary
|
|
90
|
+
The [official Homebrew tap](/guide/homebrew) owns its installed binary. Update it with:
|
|
91
91
|
|
|
92
92
|
```bash
|
|
93
|
-
brew upgrade vite-plus
|
|
93
|
+
brew upgrade voidzero-dev/vite-plus/vp
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
-
`vp upgrade` detects
|
|
96
|
+
`vp upgrade` detects the installed formula and shows its Homebrew upgrade command without downloading or installing another version. This also applies to `--force`, a specific version, and `--rollback`. The script installer's rollback and automatic pruning do not apply to Homebrew installations.
|
|
97
97
|
|
|
98
|
-
|
|
98
|
+
For the tap, run `vp` after upgrading to install the new version's dependencies in your user data directory. Setup preserves your management preferences.
|
|
99
|
+
|
|
100
|
+
For the tap, `vp upgrade --check` directs you to `brew outdated voidzero-dev/vite-plus/vp`. Automatic npm update checks and notices are disabled for Homebrew installations.
|
|
101
|
+
|
|
102
|
+
To switch to the tap, follow the [migration steps](/guide/homebrew#switch-an-existing-installation).
|
|
99
103
|
|
|
100
104
|
## Preview Builds
|
|
101
105
|
|
|
@@ -111,6 +115,8 @@ Preview builds are addressed by pull request number or commit SHA. They are not
|
|
|
111
115
|
|
|
112
116
|
### Global `vp` Preview
|
|
113
117
|
|
|
118
|
+
For a Homebrew installation, follow the [tap preview instructions](/guide/homebrew#test-a-preview-build).
|
|
119
|
+
|
|
114
120
|
Install a preview build of the global CLI by passing `VP_PR_VERSION` to the installer. Pass a pull request number or a commit SHA:
|
|
115
121
|
|
|
116
122
|
```bash
|
package/docs/guide/vitest-v5.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Upgrade to Vitest 5
|
|
2
2
|
|
|
3
|
-
Vite+ bundles Vitest `5.0
|
|
3
|
+
Vite+ bundles Vitest `5.1.0`. 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
|
|
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.1.0`. 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
|
@@ -87,7 +87,7 @@ A missing path, or a missing name with a TypeScript extension, is an error: `vpx
|
|
|
87
87
|
|
|
88
88
|
- `--tsconfig <path>` applies one tsconfig to every file (see [tsconfig](#tsconfig))
|
|
89
89
|
- `--watch` runs the file again when a file it uses changes (see [Watch Mode](#watch-mode))
|
|
90
|
-
- Node.js options before the file, such as `--inspect`, `--test`, `--env-file`, `--require`, and `--import`, are passed to Node.js; `--require` and `--import`
|
|
90
|
+
- Node.js options before the file, such as `--inspect`, `--test`, `--env-file`, `--require`, and `--import`, are passed to Node.js; modules loaded with `--require` and `--import` can be TypeScript too
|
|
91
91
|
- Everything after the file, including `--`, is passed to the script
|
|
92
92
|
|
|
93
93
|
### Shebang Scripts
|
|
@@ -103,6 +103,38 @@ Scripts can use `vpx` as their interpreter. Make the file executable and keep it
|
|
|
103
103
|
|
|
104
104
|
The `vpx` bin of the `vite-plus` package runs scripts on its own, so `"seed": "vpx ./scripts/seed.ts"` works in `package.json` scripts without the global CLI. It runs them on the Node.js that started it, which inside `vp run` and package manager scripts is the project's version.
|
|
105
105
|
|
|
106
|
+
### Using Node.js Directly
|
|
107
|
+
|
|
108
|
+
To run TypeScript with `node`, use `--import vite-plus/register`. This registers the Vite+ TypeScript loader before your script runs:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
node --import=vite-plus/register ./scripts/seed.ts
|
|
112
|
+
node --import vite-plus/register --test ./test/example.test.ts
|
|
113
|
+
NODE_OPTIONS='--import=vite-plus/register' node ./scripts/seed.ts
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Install `vite-plus` in the project first. Node.js resolves `vite-plus/register` from the project. The loader provides the same TypeScript transforms, tsconfig resolution, and source maps as `vpx`, and requires the same Node.js versions as Vite+.
|
|
117
|
+
|
|
118
|
+
If a tool starts Node.js itself, add `--import vite-plus/register` to its Node.js arguments or `NODE_OPTIONS`. Replace an existing `--import tsx` argument with `--import vite-plus/register`. For example, an AVA configuration can use:
|
|
119
|
+
|
|
120
|
+
```json
|
|
121
|
+
{
|
|
122
|
+
"ava": {
|
|
123
|
+
"nodeArguments": ["--import=vite-plus/register"]
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Keep the tool's existing TypeScript file patterns and other settings. A JavaScript launcher can also run `await import('vite-plus/register')` before dynamically importing a TypeScript file. A static TypeScript import in that launcher is resolved before registration, so use `--import` for static imports.
|
|
129
|
+
|
|
130
|
+
`fork()` and workers inherit the `--import` option through Node.js arguments. `NODE_OPTIONS` also passes the option to spawned Node.js processes. Replacing a child's arguments or environment follows Node.js's normal inheritance rules.
|
|
131
|
+
|
|
132
|
+
To select a tsconfig, set `VP_SCRIPT_TSCONFIG=tsconfig.scripts.json`. The existing `TSX_TSCONFIG_PATH` variable also works, with `VP_SCRIPT_TSCONFIG` taking precedence. Otherwise the [usual tsconfig discovery](#tsconfig) applies. Each worker selects its config from its own environment, so workers can use different configs without changing their parent.
|
|
133
|
+
|
|
134
|
+
Node.js owns its flags, test discovery, and native watch mode. Eval and stdin can import TypeScript files, but their input text is not transformed. Modules loaded with `--require` run before modules loaded with `--import`. To load a TypeScript setup file, put `--import ./setup.ts` after `--import vite-plus/register`. Repeated imports of `vite-plus/register` are harmless, including when a tool already runs under `vpx`.
|
|
135
|
+
|
|
136
|
+
The [compiler differences from tsx](#coming-from-tsx) also apply when you use `vite-plus/register`.
|
|
137
|
+
|
|
106
138
|
### Watch Mode
|
|
107
139
|
|
|
108
140
|
```bash
|
|
@@ -132,7 +164,7 @@ It watches every file the script imports or requires (in worker threads too, on
|
|
|
132
164
|
|
|
133
165
|
`vpx` reads compiler options from a tsconfig but does not type-check with it. Each file uses the nearest `tsconfig.json` above it that includes it through `files`, `include`, `exclude`, or project `references`, as `tsc` does, and `extends` is followed. Files in `node_modules` use no tsconfig, and neither does a file that no tsconfig includes, so it gets the defaults below. Such a file still resolves `paths` aliases through the nearest `tsconfig.json` above it, as tsx does: with a root tsconfig whose `include` is `["src"]`, a script in `scripts/` can import the same aliases as `src/`. Because the config depends on the file's location, not on the working directory, `vpx` compiles a file the same way wherever it runs from.
|
|
134
166
|
|
|
135
|
-
`--tsconfig <path>` applies one config to every file instead, including files that config does not include. Without `--tsconfig`,
|
|
167
|
+
`--tsconfig <path>` applies one config to every file instead, including files that config does not include. Without `--tsconfig`, `TSX_TSCONFIG_PATH`, `TS_NODE_PROJECT`, or `OXC_TSCONFIG_PATH` can select a config, in that order. If it names a file that does not exist, or a tsconfig fails to parse, `vpx` prints a warning and runs without that config.
|
|
136
168
|
|
|
137
169
|
A file that no tsconfig applies to runs as if its `compilerOptions` were empty:
|
|
138
170
|
|
|
@@ -193,8 +225,16 @@ JSX that depends on a compiler plugin is not supported. `vpx` compiles JSX only
|
|
|
193
225
|
- **Node.js version**: `vpx` needs Node.js `^22.18.0 || ^24.11.0 || >=26.0.0`, while tsx also runs on older releases.
|
|
194
226
|
- **Watch mode**: `tsx watch` becomes `vpx --watch`, which takes tsx watch's options (see [Watch Mode](#watch-mode)). It also reruns the script on tsconfig edits and when a file a failed import looked for is created, which tsx watch misses.
|
|
195
227
|
- **Eval, REPL, and `--check`**: `vpx --eval`, the REPL, and `vpx --check` do not transform TypeScript.
|
|
196
|
-
- **`node --import tsx`**: `
|
|
197
|
-
- **Other loaders**:
|
|
228
|
+
- **`node --import tsx`**: replace it with [`node --import vite-plus/register`](#using-nodejs-directly), including in tool settings and `NODE_OPTIONS`.
|
|
229
|
+
- **Other loaders**: replace `--import tsx` with `--import vite-plus/register`. Registering both TypeScript loaders makes them compete for the same files.
|
|
230
|
+
|
|
231
|
+
### Coming from oxnode
|
|
232
|
+
|
|
233
|
+
`vp migrate` can replace `oxnode <file>` with `vpx <file>` and `oxnode watch <file>` with `vpx --watch <file>`. Both use oxc-node's transformer and watcher. Node.js commands and literal `NODE_OPTIONS` assignments that load `@oxc-node/core/register` use `vite-plus/register` instead. Migration removes the standalone development dependencies only when no remaining commands or imports need them. See [oxnode to `vpx`](/guide/migrate-rules#oxnode-to-vpx).
|
|
234
|
+
|
|
235
|
+
### Coming from ts-node
|
|
236
|
+
|
|
237
|
+
`vp migrate` can replace supported transpile-only ts-node commands with `vpx`. Supported Node.js preloads and literal `NODE_OPTIONS` assignments use `vite-plus/register`. Migration keeps commands that type-check because neither replacement performs that check. Custom compiler settings and remaining loader or API usage can also keep `ts-node` installed. See [ts-node to `vpx`](/guide/migrate-rules#ts-node-to-vpx).
|
|
198
238
|
|
|
199
239
|
## `vp exec`
|
|
200
240
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vite-plus",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "The Unified Toolchain for the Web",
|
|
5
5
|
"homepage": "https://viteplus.dev/guide",
|
|
6
6
|
"bugs": {
|
|
@@ -32,7 +32,9 @@
|
|
|
32
32
|
"templates"
|
|
33
33
|
],
|
|
34
34
|
"type": "module",
|
|
35
|
-
"sideEffects":
|
|
35
|
+
"sideEffects": [
|
|
36
|
+
"./dist/register.js"
|
|
37
|
+
],
|
|
36
38
|
"main": "./dist/index.js",
|
|
37
39
|
"types": "./dist/index.d.ts",
|
|
38
40
|
"exports": {
|
|
@@ -85,6 +87,10 @@
|
|
|
85
87
|
"types": "./dist/oxlint-plugin.d.ts"
|
|
86
88
|
},
|
|
87
89
|
"./package.json": "./package.json",
|
|
90
|
+
"./register": {
|
|
91
|
+
"types": "./dist/register.d.ts",
|
|
92
|
+
"default": "./dist/register.js"
|
|
93
|
+
},
|
|
88
94
|
"./pack": {
|
|
89
95
|
"types": "./dist/pack.d.ts",
|
|
90
96
|
"import": "./dist/pack.js"
|
|
@@ -339,53 +345,53 @@
|
|
|
339
345
|
}
|
|
340
346
|
},
|
|
341
347
|
"dependencies": {
|
|
342
|
-
"@oxc-project/runtime": "=0.
|
|
343
|
-
"@oxc-project/types": "=0.
|
|
344
|
-
"@oxlint/plugins": "=1.
|
|
345
|
-
"@vitest/browser": "5.0
|
|
346
|
-
"@vitest/browser-preview": "5.0
|
|
347
|
-
"@vitest/mocker": "5.0
|
|
348
|
-
"@vitest/pretty-format": "5.0
|
|
349
|
-
"@vitest/snapshot": "5.0
|
|
350
|
-
"@vitest/spy": "5.0
|
|
351
|
-
"@vitest/utils": "5.0
|
|
352
|
-
"oxfmt": "=0.
|
|
353
|
-
"oxlint": "=1.
|
|
354
|
-
"oxlint-tsgolint": "=7.0.
|
|
355
|
-
"vite": "npm:@voidzero-dev/vite-plus-core@1.
|
|
356
|
-
"vitest": "5.0
|
|
348
|
+
"@oxc-project/runtime": "=0.157.0",
|
|
349
|
+
"@oxc-project/types": "=0.157.0",
|
|
350
|
+
"@oxlint/plugins": "=1.91.0",
|
|
351
|
+
"@vitest/browser": "5.1.0",
|
|
352
|
+
"@vitest/browser-preview": "5.1.0",
|
|
353
|
+
"@vitest/mocker": "5.1.0",
|
|
354
|
+
"@vitest/pretty-format": "5.1.0",
|
|
355
|
+
"@vitest/snapshot": "5.1.0",
|
|
356
|
+
"@vitest/spy": "5.1.0",
|
|
357
|
+
"@vitest/utils": "5.1.0",
|
|
358
|
+
"oxfmt": "=0.76.0",
|
|
359
|
+
"oxlint": "=1.91.0",
|
|
360
|
+
"oxlint-tsgolint": "=7.0.2005",
|
|
361
|
+
"vite": "npm:@voidzero-dev/vite-plus-core@1.5.0",
|
|
362
|
+
"vitest": "5.1.0"
|
|
357
363
|
},
|
|
358
364
|
"devDependencies": {
|
|
359
|
-
"@emnapi/core": "2.0.0-
|
|
360
|
-
"@emnapi/runtime": "2.0.0-
|
|
365
|
+
"@emnapi/core": "2.0.0-beta.2",
|
|
366
|
+
"@emnapi/runtime": "2.0.0-beta.2",
|
|
361
367
|
"@napi-rs/cli": "^3.10.0",
|
|
362
368
|
"@nkzw/safe-word-list": "^3.1.0",
|
|
363
369
|
"@types/cross-spawn": "^6.0.6",
|
|
364
370
|
"@types/validate-npm-package-name": "^4.0.2",
|
|
365
|
-
"@vitest/browser-playwright": "5.0
|
|
371
|
+
"@vitest/browser-playwright": "5.1.0",
|
|
366
372
|
"@vitest/browser-webdriverio": "5.0.0",
|
|
367
|
-
"@voidzero-dev/vite-plus-prompts": "1.
|
|
373
|
+
"@voidzero-dev/vite-plus-prompts": "1.5.0",
|
|
368
374
|
"@voidzero-dev/vite-task-client": "0.2.0",
|
|
369
375
|
"bingo": "^0.13.2",
|
|
370
|
-
"cac": "^7.
|
|
376
|
+
"cac": "^7.1.0",
|
|
371
377
|
"cross-spawn": "^7.0.5",
|
|
372
378
|
"detect-indent": "^7.0.2",
|
|
373
379
|
"detect-newline": "^4.0.1",
|
|
374
380
|
"jsonc-parser": "^3.3.1",
|
|
375
381
|
"lint-staged": "^17.6.0",
|
|
376
|
-
"minimatch": "^
|
|
382
|
+
"minimatch": "^11.0.0",
|
|
377
383
|
"nanotar": "^0.3.0",
|
|
378
384
|
"picocolors": "^1.1.1",
|
|
379
385
|
"pirates": "^4.0.7",
|
|
380
386
|
"tinyglobby": "^0.2.15",
|
|
381
|
-
"tsdown": "^0.23.
|
|
387
|
+
"tsdown": "^0.23.4",
|
|
382
388
|
"validate-npm-package-name": "^8.0.0",
|
|
383
389
|
"verkit": "^0.5.0",
|
|
384
390
|
"yaml": "^2.9.1",
|
|
385
391
|
"zod": "^4.4.3"
|
|
386
392
|
},
|
|
387
393
|
"peerDependencies": {
|
|
388
|
-
"@vitest/browser-playwright": "5.0
|
|
394
|
+
"@vitest/browser-playwright": "5.1.0",
|
|
389
395
|
"@vitest/browser-webdriverio": "^5.0.0-beta.5 || >=5.0.0",
|
|
390
396
|
"playwright": "*"
|
|
391
397
|
},
|
|
@@ -418,14 +424,14 @@
|
|
|
418
424
|
"node": "^22.18.0 || ^24.11.0 || >=26.0.0"
|
|
419
425
|
},
|
|
420
426
|
"optionalDependencies": {
|
|
421
|
-
"@voidzero-dev/vite-plus-darwin-arm64": "1.
|
|
422
|
-
"@voidzero-dev/vite-plus-darwin-x64": "1.
|
|
423
|
-
"@voidzero-dev/vite-plus-linux-arm64-gnu": "1.
|
|
424
|
-
"@voidzero-dev/vite-plus-linux-arm64-musl": "1.
|
|
425
|
-
"@voidzero-dev/vite-plus-linux-x64-gnu": "1.
|
|
426
|
-
"@voidzero-dev/vite-plus-linux-x64-musl": "1.
|
|
427
|
-
"@voidzero-dev/vite-plus-win32-x64-msvc": "1.
|
|
428
|
-
"@voidzero-dev/vite-plus-win32-arm64-msvc": "1.
|
|
427
|
+
"@voidzero-dev/vite-plus-darwin-arm64": "1.5.0",
|
|
428
|
+
"@voidzero-dev/vite-plus-darwin-x64": "1.5.0",
|
|
429
|
+
"@voidzero-dev/vite-plus-linux-arm64-gnu": "1.5.0",
|
|
430
|
+
"@voidzero-dev/vite-plus-linux-arm64-musl": "1.5.0",
|
|
431
|
+
"@voidzero-dev/vite-plus-linux-x64-gnu": "1.5.0",
|
|
432
|
+
"@voidzero-dev/vite-plus-linux-x64-musl": "1.5.0",
|
|
433
|
+
"@voidzero-dev/vite-plus-win32-x64-msvc": "1.5.0",
|
|
434
|
+
"@voidzero-dev/vite-plus-win32-arm64-msvc": "1.5.0"
|
|
429
435
|
},
|
|
430
436
|
"scripts": {
|
|
431
437
|
"build": "oxnode -C dev ./build.ts",
|