VitePlus
Move a frontend repo closer to the stock VitePlus toolchain without blindly deleting repo-specific release or runtime logic. VitePlus is in alpha — verify behavior against installed vp --version and the latest release notes rather than memorized command shapes.
Migration Targets
Default to this destination unless a repo-specific boundary clearly blocks it. If you keep an old command shape, document the reason.
- CI uses
voidzero-dev/setup-vp@v1; the action owns Node and package-manager bootstrap, then runsvp install,vp check,vp test,vp build - test files use
vite-plus/test(andvite-plus/test/browser/contextfor browser mode) - scripts prefer
vp test,vp test watch,vp test run --coverage,vp pack,vp build,vp update, andvp run <script>(orvpr <script>) over direct package-manager, raw Vitest, or tsdown wiring - hooks use
vp config,.vite-hooks, andvp stagedinstead of custom Husky orlint-staged - single-source config in
vite.config.ts: no parallelvitest.config.ts,.oxlintrc*,.oxfmtrc*, ortsdown.config.ts - contributor docs move to the new
vpcommands in the same change
Workflow
- Confirm the project is on Vite 8+ and Vitest 4.1+ — VitePlus refuses older versions.
- Audit current scripts, workflows, Vite config, test imports, release flow, package manager, and packaging.
- Read references/bootstrap.md for entrypoints (
vp create,vp migrate), local guidance-file discovery, and validation path. - Pick the shape and load only that reference: references/packages.md for standalone packages, or references/monorepos.md for workspaces.
- Migrate scripts,
vite.config.ts, test imports, hooks, and packaging together. Verify withvp check && vp testbefore moving on. - Update CI per references/ci-cd.md.
- Update tests and coverage per references/testing.md.
- Check references/commands.md before changing command invocations. Load references/known-issues.md only on unexpected behavior or when upgrading VitePlus.
- Keep repo-specific release, binary, or packaging steps Vite+ does not replace.
- To adopt a newer Vite+ release:
vp upgrade(global), thenvp update vite-plus @voidzero-dev/vite-plus-core @voidzero-dev/vite-plus-test(project). Confirm withvp outdated. - End-to-end validation:
vp env current && vp install && vp check && vp test, then verifyvp buildartifacts,vp test run --coverage, andvp stagedon a staged change.
Concrete examples:
- uses: voidzero-dev/setup-vp@v1
with:
node-version-file: ".node-version"
cache: true
- run: vp install
- run: vp check
- run: vp test
- run: vp buildimport { defineConfig } from 'vite-plus'
export default defineConfig({
lint: {
options: { typeAware: true, typeCheck: true },
},
staged: {
"*.{js,ts,tsx,vue,svelte}": "vp check --fix",
},
}) # package.json scripts
-"test": "vitest run --coverage",
-"test:watch": "vitest",
+"test": "vp test run --coverage",
+"test:watch": "vp test watch",Guardrails
- Prefer
vp create/vp migrate --agent <name> --editor <name>over hand-rolling agent or editor config. - Do not delete release workflows, binary packaging, or publish steps just to look more "stock."
- If
vp checkis not running type-aware lint or type checks, confirmlint.options.typeAwareandlint.options.typeCheckinvite.config.ts, and check forcompilerOptions.baseUrlintsconfig.json—tsgolintdoes not supportbaseUrland VitePlus silently skips type-aware checks when it is present.
Known Caveats
See references/known-issues.md for current upstream caveats (hook runners, single-file vp check --fix, SSR instanceof failures, Cloudflare Workers tests, @vitest/coverage-v8 mixed-version warnings).