//vite-plusbyuserquin

vite-plus

Vite+ is the unified toolchain and entry point for web development. It manages your runtime, package manager, and frontend toolchain in one place.

0
0
0
Vite+

undefinedThe Unified Toolchain for the Webundefined
runtime and package management, create, dev, check, test, build, pack, and monorepo task caching in a single dependency


Vite+ is the unified entry point for local web development. It combines Vite, Vitest, Oxlint, Oxfmt, Rolldown, tsdown, and Vite Task into one zero-config toolchain that also manages runtime and package manager workflows:

  • undefinedvp env: Manage Node.js globally and per project
  • undefinedvp install: Install dependencies with automatic package manager detection
  • undefinedvp dev: Run Vite’s fast native ESM dev server with instant HMR
  • undefinedvp check: Run formatting, linting, and type checks in one command
  • undefinedvp test: Run tests through bundled Vitest
  • undefinedvp build: Build applications for production with Vite + Rolldown
  • undefinedvp run: Execute monorepo tasks with caching and dependency-aware scheduling
  • undefinedvp pack: Build libraries for npm publishing or standalone app binaries
  • undefinedvp create / vp migrate: Scaffold new projects and migrate existing ones

All of this is configured from your project root and works across Vite’s framework ecosystem.
Vite+ is fully open-source under the MIT license.

Getting Started

Install Vite+ globally as vp:

For Linux or macOS:

curl -fsSL https://vite.plus | bash

For Windows:

irm https://viteplus.dev/install.ps1 | iex

vp handles the full development lifecycle such as package management, development servers, linting, formatting, testing and building for production.

Configuring Vite+

Vite+ can be configured using a single vite.config.ts at the root of your project:

import { defineConfig } from 'vite-plus';

export default defineConfig({
  // Standard Vite configuration for dev/build/preview.
  plugins: [],

  // Vitest configuration.
  test: {
    include: ['src/**/*.test.ts'],
  },

  // Oxlint configuration.
  lint: {
    ignorePatterns: ['dist/**'],
  },

  // Oxfmt configuration.
  fmt: {
    semi: true,
    singleQuote: true,
  },

  // Vite Task configuration.
  run: {
    tasks: {
      'generate:icons': {
        command: 'node scripts/generate-icons.js',
        envs: ['ICON_THEME'],
      },
    },
  },

  // `vp staged` configuration.
  staged: {
    '*': 'vp check --fix',
  },
});

This lets you keep the configuration for your development server, build, test, lint, format, task runner, and staged-file workflow in one place with type-safe config and shared defaults.

Use vp migrate to migrate to Vite+. It merges tool-specific config files such as .oxlintrc*, .oxfmtrc*, and lint-staged config into vite.config.ts.

CLI Workflows (vp help)

Start

  • undefinedcreate - Create a new project from a template
  • undefinedmigrate - Migrate an existing project to Vite+
  • undefinedconfig - Configure hooks and agent integration
  • undefinedstaged - Run linters on staged files
  • undefinedinstall (i) - Install dependencies
  • undefinedenv - Manage Node.js versions

Develop

  • undefineddev - Run the development server
  • undefinedcheck - Run format, lint, and type checks
  • undefinedlint - Lint code
  • undefinedfmt - Format code
  • undefinedtest - Run tests

Execute

  • undefinedrun - Run monorepo tasks
  • undefinedexec - Execute a command from local node_modules/.bin
  • undefineddlx - Execute a package binary without installing it as a dependency
  • undefinedcache - Manage the task cache

Build

  • undefinedbuild - Build for production
  • undefinedpack - Build libraries
  • undefinedpreview - Preview production build

Manage Dependencies

Vite+ automatically wraps your package manager (pnpm, npm, or Yarn) based on packageManager and lockfiles:

  • undefinedadd - Add packages to dependencies
  • undefinedremove (rm, un, uninstall) - Remove packages from dependencies
  • undefinedupdate (up) - Update packages to latest versions
  • undefineddedupe - Deduplicate dependencies
  • undefinedoutdated - Check outdated packages
  • undefinedlist (ls) - List installed packages
  • undefinedwhy (explain) - Show why a package is installed
  • undefinedinfo (view, show) - View package metadata from the registry
  • undefinedlink (ln) / unlink - Manage local package links
  • undefinedpm - Forward a command to the package manager

Maintain

  • undefinedupgrade - Update vp itself to the latest version
  • undefinedimplode - Remove vp and all related data

Scaffolding your first Vite+ project

Use vp create to create a new project:

vp create

You can run vp create inside of a project to add new apps or libraries to your project.

Migrating an existing project

You can migrate an existing project to Vite+:

vp migrate

GitHub Actions

Use the official setup-vp action to install Vite+ in GitHub Actions:

- uses: voidzero-dev/setup-vp@v1
  with:
    node-version: '22'
    cache: true

Manual Installation & Migration

If you are manually migrating a project to Vite+, install these dev dependencies first:

npm install -D vite-plus @voidzero-dev/vite-plus-core@latest

You need to add overrides to your package manager for vite and vitest so that other packages depending on Vite and Vitest will use the Vite+ versions:

"overrides": {
  "vite": "npm:@voidzero-dev/vite-plus-core@latest",
  "vitest": "npm:@voidzero-dev/vite-plus-test@latest"
}

If you are using pnpm, add this to your pnpm-workspace.yaml:

overrides:
  vite: npm:@voidzero-dev/vite-plus-core@latest
  vitest: npm:@voidzero-dev/vite-plus-test@latest

Or, if you are using Yarn:

"resolutions": {
  "vite": "npm:@voidzero-dev/vite-plus-core@latest",
  "vitest": "npm:@voidzero-dev/vite-plus-test@latest"
}

Sponsors

Thanks to namespace.so for powering our CI/CD pipelines with fast, free macOS and Linux runners.

[beta]v0.14.0