
Research
Shai-Hulud Descends to Hades: Miasma Worm Campaign Spreads with New PyPI Wave
Socket found 37 malicious PyPI wheels that abuse Python startup hooks to launch a Bun-powered credential stealer tied to Mini Shai-Hulud/Miasma.
vite-plus
Advanced tools
The Unified Toolchain for the Web runtime and package management, create, dev, check, test, build, pack, and monorepo task caching in a single dependency
This package provides the project-local version of Vite+. The global vite command automatically delegates to this package for all project-specific tasks.
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:
vp env: Manage Node.js globally and per projectvp install: Install dependencies with automatic package manager detectionvp dev: Run Vite's fast native ESM dev server with instant HMRvp check: Run formatting, linting, and type checks in one commandvp test: Run tests through bundled Vitestvp build: Build applications for production with Vite + Rolldownvp run: Execute monorepo tasks with caching and dependency-aware schedulingvp pack: Build libraries for npm publishing or standalone app binariesvp create / vp migrate: Scaffold new projects and migrate existing onesAll of this is configured from your project root and works across Vite's framework ecosystem. Vite+ is fully open-source under the MIT license.
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.
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.
vp help)i) - Install dependenciesnode_modules/.binVite+ automatically wraps your package manager (pnpm, npm, or Yarn) based on packageManager and lockfiles:
rm, un, uninstall) - Remove packages from dependenciesup) - Update packages to latest versionsls) - List installed packagesexplain) - Show why a package is installedview, show) - View package metadata from the registryln) / unlink - Manage local package linksvp itself to the latest versionvp and all related dataUse 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.
Organizations can expose a curated set of templates under their npm scope by
publishing @org/create with a createConfig.templates manifest in its package.json.
Once published, vp create @org opens an interactive picker over those
templates, and setting create: { defaultTemplate: '@org' } in
vite.config.ts makes it the default for bare vp create. See the
Organization Templates guide
for the authoring workflow and
create.defaultTemplate for the
config reference.
You can migrate an existing project to Vite+:
vp migrate
Use the official setup-vp action to install Vite+ in GitHub Actions:
- uses: voidzero-dev/setup-vp@v1
with:
node-version: '22'
cache: true
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"
}
Thanks to namespace.so for powering our CI/CD pipelines with fast, free macOS and Linux runners.
FAQs
The Unified Toolchain for the Web
The npm package vite-plus receives a total of 390,211 weekly downloads. As such, vite-plus popularity was classified as popular.
We found that vite-plus demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Socket found 37 malicious PyPI wheels that abuse Python startup hooks to launch a Bun-powered credential stealer tied to Mini Shai-Hulud/Miasma.

Security News
RubyGems and Bundler 4.0.13 introduced an opt-in cooldown feature that delays newly published gems during dependency resolution.

Security News
pnpm 11.5 now recognizes npm staged publish approvals in release metadata, preventing those releases from being mistaken for lower-trust package publishes.