Skip to content
Putting technology to work.
Insights to guide decisions and action.

Search articles

Vite+ 1.0 is generally available: Node requirements and vp migrate to check before migrating

Table of contents · 6 items

Open the repository of a website you maintain, and you find the settings for vite.config.js, eslint.config.js, .prettierrc and Vitest, each on a different version. Every time you upgrade one of them, you have to recheck how it works with the other tools. We introduced "Vite+," VoidZero's unified toolchain that bundles these tools into one, during its beta in our article on the beta release.

That Vite+ has now reached 1.0. Is it safe to migrate now that it is 1.0? Have the license or pricing changed? Will it run on the Node.js versions on your machine and in CI? We cross-checked the release notes and npm's publication records, and summarize the results of creating a new project and migrating on this PC.

What became "stable" in 1.0

The v1.0.0 tag in the voidzero-dev/vite-plus repository points to the commit "release: v1.0.0: Vite+ 1.0 is stable," dated September 28, 2026 (02:20 UTC). vite-plus@1.0.0 on npm was published at 05:37 (UTC) the same day, and as of October 4, latest was also 1.0.0.

According to the release notes, 1.0.0 promoted the September 26 RC (v1.0.0-rc.1) to stable with "no code changes." The substantive changes are in the two RCs. In rc.0 on September 22, the test runner moved to Vitest 5 and the CLI's Node.js requirement changed. In rc.1, the task cache settings moved under cache. Both are treated as Breaking Changes in the release notes.

The tool versions bundled with 1.0.0 are as follows (checked against the table in the release notes and the output of vp --version).

RoleToolVersion in 1.0.0
Dev server and buildVite / Rolldown8.3.1 / 1.2.11
TestsVitest5.0.1
Linting (including type-aware rules)Oxlint / oxlint-tsgolint1.85.0 / 7.0.2003
FormattingOxfmt0.70.0
Library buildstsdown0.23.0

On the other hand, we found no document setting out a compatibility policy for 1.0 and later in the repository at v1.0.0 (README, docs and rfcs). It is safest to assume you will keep checking the "Breaking Changes" in the release notes with each update.

License and pricing have not changed

The repository's LICENSE is MIT, and license for version 1.0.0 of vite-plus and @voidzero-dev/vite-plus-core on npm is MIT. The license history shows that the Business Source License 1.1 (a license that restricts production use) was put in place on October 27, 2025, and that it was switched to MIT on February 27, 2026, with "chore: Switch to MIT License." The terms for commercial use changed at that point in February, and nothing new changed with 1.0. Regarding pricing, VoidZero's 1.0 announcement dated September 28 describes Vite+ as "free and MIT-licensed open source." We also found no mention of paid plans or usage fees in the repository's documents. The announcement also says that features such as remote caching are planned for future versions, meaning the feature set was not complete as of 1.0.

Node.js requirements: the 20 line and versions below 22.18 are dropped

What directly determines whether you can migrate is the Node.js requirement. engines as recorded on npm changed as follows.

  • 0.3.3 (September 18): ^20.19.0 || ^22.18.0 || >=24.11.0
  • 1.0.0-rc.0 and later, and 1.0.0: ^22.18.0 || ^24.11.0 || >=26.0.0

Node.js 20.x is no longer supported, and 22.x requires 22.18.0 or later. Because >=24.11.0 changed to ^24.11.0, the odd-numbered 25.x line is also excluded. vp staged, used in pre-commit hooks, is stricter still and requires Node.js ^22.22.1 || ^24.11.0 || >=26.0.0 and Git 2.32.0 or later (per the rc.0 release notes). Node.js's own support periods are covered in our article on Node.js 24 entering maintenance and 26 becoming LTS.

If 20.x or an older 22.x remains anywhere in CI, on developer machines or on build servers, things will stop there. Inventory the versions in .nvmrc, package.json, GitHub Actions and your hosting provider's build settings first.

We tried a new project and a migration on this PC

From here on, this is hands-on testing. On October 4, 2026, we installed vite-plus@1.0.0 into projects in an isolated working directory on Linux (Node.js v22.22.0, npm 10.9.4, git 2.43.0). We did not use the global installer because we could not connect to vite.plus.

With npm 10.9.4, it would not install as is

Running npm install -D vite-plus@1.0.0 in an empty project, npm 10.9.4 stopped with npm error Cannot read properties of null (reading 'edgesOut'). The npx --package=vite-plus@1.0.0 vp ... given in the official migration guide produced the same error. The same error also appeared when we added Vitest 4.1 to a separate project with Vite 8 installed, so this appears to be an issue with dependency resolution in this npm version rather than one specific to Vite+.

When we added overrides to package.json (replacing vite and pinning the version of vitest) following the manual setup steps in the README, it installed even with npm 10.9.4. With npm 11.21.0, npm exec --package=vite-plus@1.0.0 -- vp --version showed vp v1.0.0 without overrides. Check the npm version in your CI image beforehand as well.

New project: check, test and build passed

We scaffolded an app with vp create vite:application --no-interactive --package-manager npm, added one simple test and ran it. vp check, vp lint, vp test and vp build all exited with code 0.

$ npx vp check
pass: All 8 files are correctly formatted (516ms, 4 threads)
pass: Found no warnings, lint errors, or type errors in 4 files (602ms, 4 threads)
$ npx vp test
 Test Files  1 passed (1)
      Tests  1 passed (1)

The generated vite.config.ts enables type-aware linting and type checking (typeAware / typeCheck), and is set up so that a single vp check checks formatting, linting and types. Note that v22.22.0 does not meet the requirement for vp staged (22.22.1 or later), yet vp staged also ran without errors in this environment. Do not run on unsupported versions just because they happened to work.

Migrating an existing setup: the ESLint and Prettier configs disappear

Next, we created a small project using Vite 8, ESLint 9 (the recommended rules of @eslint/js) and Prettier 3 (semi: false, singleQuote: true), committed it to git, and then ran vp migrate --no-interactive.

Before-and-after comparison of running vp migrate on a test Vite project using ESLint 9 and Prettier 3. eslint.config.js and .prettierrc were deleted, their settings moved to lint and fmt in vite.config.js, and the scripts were replaced with vp commands. Two ESLint rules were skipped as unsupported; vp check failed right after migration due to formatting in index.html and passed after vp check --fix

The changes are as shown in the figure.

  • eslint.config.js and .prettierrc were deleted, and their contents moved to lint and fmt in vite.config.js (settings such as semi: false were also kept)
  • In scripts, vite was replaced with vp dev, eslint . with vp lint ., and prettier --write . with vp fmt .
  • devDependencies were reduced to just vite-plus and the replacement for vite (@voidzero-dev/vite-plus-core)
  • ESLint's no-dupe-args and no-octal were skipped as "Superseded by strict mode."

Right after migration, vp check exited with code 1 due to a formatting violation in index.html, and passed after vp check --fix. vp build also succeeded. The migration guide itself says, "Most projects will require further manual adjustments after running vp migrate."

In another case, running it on a project that contained Vitest tests but did not have Vitest installed stopped at BLOCK [source-version] Cannot determine the original Vitest version. and displayed "No project files were changed." The message asked us to install from the original lockfile and rerun, and the migration guide also says to start with the original dependencies and lockfile in place.

Each test was run once on test projects with only a few files. We did not test real client sites built with Astro or similar, setups with many ESLint plugins, pnpm, or monorepos.

Migrate or wait (editorial team's proposal)

Based on the facts above, here is the editorial team's assessment.

Current situationEditorial proposal
Node.js 20.x or a version below 22.18 remains somewhere in CI or the build environmentUpgrade Node.js first, then migrate to Vite+
On a version earlier than Vite 8 or earlier than Vitest 4.1Upgrade Vite and Vitest first, and commit once tests pass before migrating
Heavy use of ESLint plugins and rulesList the rules skipped by the migration and decide whether you can accept losing those without a replacement
Already using Vite+ 0.3Follow the official "Upgrade from Vite+ 0.3 to 1.0" steps and run vp migrate before updating dependencies
Small sites rarely touched after deliveryLittle reason to rush. Consider it alongside the next major update

Migration steps and pitfalls

  1. Create a branch and start with the lockfile kept in place. If the original versions are unknown, migration stops for projects that include Vitest.
  2. Save the output of vp migrate. Skipped rules and the BLOCK and REVIEW items appear only there.
  3. Review the vp check --fix diff before committing. Files that Prettier and Oxfmt format differently show up in the diff (index.html in our test).
  4. Get vp install, vp check, vp test and vp build to pass. This is the verification order listed in the migration guide.
  5. In CI, specify voidzero-dev/setup-vp by exact version or commit SHA. The README warns, "Do not use the v1 tag." (the v1 tag is not updated).
  6. Review your editor settings. In rc.0, the wrappers Vite+ provided for the oxlint and oxfmt commands were removed, and editors now use vp lint --lsp and vp fmt --lsp. The type-checking path is not supported for baseUrl in tsconfig.json, and if the automatic fix during migration fails, type checking is not enabled (per the troubleshooting docs).

On October 4, 2026, we directly opened and cross-checked the README, LICENSE and docs/guide of the voidzero-dev/vite-plus repository (v1.0.0 = commit fc287d7), the release notes for v1.0.0 and the two RCs (the text recorded in the release commits), and the publication records in the npm registry. Installation, new project creation and migration were each checked once in the test environment described above. On October 5, we rechecked voidzero.dev's 1.0 announcement (dated September 28) and the npm registry's publication dates and engines. We did not check migration of real client sites, pnpm, Yarn or Bun, Windows or macOS, or the global vp CLI.

For reviewing development environments for sites and apps built with Vite, or planning migrations including CI, contact GleamHub.

Sources

Share this articleXFacebook
Kakeru Suzuki

Fascinated by the possibilities of technology, has had a deep interest in programming and digital art since student days

Turn this article's theme into your company's next step

Concrete steps forward for your organization.

We organize your desired architecture, legacy systems, and operational requirements to formulate your next steps toward execution.

  • Desired architecture
  • Integration with existing environments
  • Operational requirements
Consult on development & operations initiatives

You can consult with us from the initial conceptual stage. Details from this article will be carried over to the inquiry form.

Receive the latest articles by email