
Introducing Vite+, an open-source CLI that unifies your runtime, package manager, and frontend toolchain into one fast, simple development experience.
We’re excited to open-source Vite+ under the MIT license. Vite+ is a new unified toolchain and entry point to web application development that manages your runtime, package manager, and frontend toolchain. Give it a try today!
Vite+ combines Vite, Vitest, Oxlint, Oxfmt, Rolldown, and tsdown into a single, unified web development toolchain for developing, testing, linting, formatting, and building projects for production driven by our new task runner Vite Task. Since web development requires a runtime such as Node.js and a package manager, Vite+ can also manage them for you, covering the full local development cycle.
With Vite+, web development becomes simpler, faster, and more lightweight:
vp env: Manages Node.js globally and per projectvp install: Installs dependencies using the correct package manager automaticallyvp dev: Uses Vite’s fast dev experience with native ES modules and instant HMRyvp check: Lints with Oxlint, formats code using Oxfmt and checks types with tsgovp test: Seamlessly integrates and runs Vitest with fast feedback loopsvp build: Generates optimized production builds using Rolldown and Oxcvp run: Executes monorepo tasks with automated caching and dependency resolutionvp pack: Bundles libraries for publishing on npm or creates standalone app binariesvp create: Scaffolds new projects and monorepos with recommended settingsAll these commands work seamlessly together out of the box, with one configuration file at the project root, and are compatible with all frameworks in Vite’s ecosystem, such as React, Vue, Svelte, or metaframeworks built on top of Vite.
Watch the video:
Vite+ is built to scale with your codebase while reducing your devtools to a single dependency. By leveraging VoidZero’s Rust-based JavaScript tooling, every interaction with the toolchain becomes significantly faster and scales better:
Install vp globally by running:
curl -fsSL https://vite.plus | bashirm https://vite.plus/ps1 | iexUse the setup-vp GitHub Action for CI environments.
After installing Vite+, open a new terminal session, run vp help, and check out our docs.
To get started with web development, you need a JavaScript runtime, a package manager, and many other tools. In recent years, configuration files have proliferated, and complexity has increased at every level of the stack.
One of our goals with Vite+ was to simplify the web development process: All you need is vp and a vite.config.ts file at the root of your project to configure every tool in one place. This is what the development process looks like with Vite+:
vp create to interactively create a new project, monorepo, or app within a monorepo. The new project will be ready to go immediately, including pre-commit hooks!vp install to install JavaScript dependencies. This command delegates to the package manager of your choice (we recommend and default to pnpm).vp dev to start the Vite development server.vp check to type-check, lint, and format your project all at once. Run vp check --fix to automatically fix formatting and linting issues (Pro tip: Run vp prepare to install Vite+’s pre-commit hooks!).vp test to run JavaScript tests.vp build.package.json scripts through Vite Task by using vp run <name> and execute local package binaries with vp exec <name>. Give vpx <name> a try for running local or remote binaries!.node-version or your package.json.A single binary with a consistent interface makes it easier to get started, faster to iterate, and simpler to work with for humans and AI. You no longer have to juggle Node.js version managers, package managers, a multitude of individual tools, their configuration files – or complex upgrades to any of them.
Vite Task is a powerful new open source project shipping as part of Vite+. It provides the core task runner for Vite+’s built-in commands as well as package.json scripts via vp run. Vite Task orchestrates tasks across workspace packages with:
package.json dependency graph and explicit dependsOn declarations. Multi-command scripts like tsc && vp build are split into sub-tasks and cached independently.vp run mirrors the interface of pnpm run, including monorepo support, reducing the number of new concepts you need to learn to adopt Vite+.For simple tasks that don’t depend on external inputs like environment variables, you can simply use vp run --cache <script> to cache the task run. Custom tasks, inputs and caching can be configured in your vite.config.ts:
export default defineConfig({
run: {
tasks: {
'generate:icons': {
command: 'node scripts/generate-icons.js',
cache: true, // Caching is enabled by default, set to `false` to disable.
envs: ['ICON_THEME'],
},
},
},
})Running vp run generate:icons generates icons on the first run and is skipped entirely if nothing changed on subsequent runs. If you edit a source file or the specified ICON_THEME environment variable changes, the task will re-run. Check out the Vite Task documentation for a comprehensive overview.
Migrating a project to Vite+ is straightforward, whether you are only using Vite or already using many of VoidZero’s tools. While vp is a new global binary, the vite-plus package must be installed in your project to unify all tooling under one dependency. We recommend first upgrading to Vite 8.
To get started, run vp migrate in a project or paste this migration prompt into your favorite coding agent:
Migrate this project to Vite+. Run
vp helpto understand Vite+’s capabilities. Migrations can be run usingvp migrate. Runvp help migratefor options. After the migration, verify the changes and make sure that type checking, linting, formatting, and tests pass. High-five your human when you are done.
If you are using ESLint or Prettier and would like to migrate to Oxlint and Oxfmt prior to migrating to Vite+, check out the Oxlint and Oxfmt migration guides.
We initially considered a paid license for companies when we announced Vite+. We decided that Vite+ can only achieve our mission of making JavaScript developers more productive than ever before when it is truly free and open source. We got tired of debating which features should be paid and how they should be gated, as this only creates friction in the workflows our open-source users already enjoy and love. Feedback from the community helped us reinforce our conviction. Therefore, we decided to fully open source Vite+ under the MIT license.
In case you are wondering how we are going to build a sustainable business: Step into the Void.
Vite+ ships with the latest versions of our tools such as Vite 8, Vitest 4.1, Oxlint 1.52, Oxfmt beta. We’ll add more features and make frequent releases as we stabilize this alpha release of Vite+. We’d love to hear your feedback on Vite+ and are excited to see how it improves your workflow.
Connect with us:
Oh! This is cool. When they announced it 5 months ago it looked interesting, but it wasn't open source. Discussion at the time: https://news.ycombinator.com/item?id=45537035
With this being open sourced, and being the integration and creation of several fast components, this becomes an obvious recommendation for JS/TS. Similar to Cargo for Rust and uv for Python, yes?
This announcement mentions Node.js a couple of times. Does it also support Bun as a package manager and a runtime?
No. There's an open issue: https://github.com/voidzero-dev/vite-plus/issues/557
> vp install: Install dependencies with automatic package manager detection
And it doesn't even support one of the bigger PM's? Weird
What's the difference then between Void and Vite+