Migrate or align frontend repositories to the stock Vite+ workflow. Use when standardizing package or monorepo repos around `vp`, `voidzero-dev/setup-vp`, `vite-plus/test`, and Vite+ native CI, test, and packaging flows, including updating scripts, test config, CI setup, and packaging commands.
97
100%
Does it follow best practices?
Impact
94%
1.46xAverage score across 6 eval scenarios
Passed
No known issues
Move a frontend repo closer to the stock Vite+ toolchain while preserving repo-specific release and runtime logic. Vite+ is in alpha — verify behavior against installed vp --version and the latest release notes instead of relying on memorized command shapes.
Default to this destination unless a repo-specific boundary clearly blocks it. If you keep an old command shape, document the reason.
voidzero-dev/setup-vp; the action owns Node and package-manager bootstrap. Let its default run-install: true run vp install, then run vp check, vp test, and vp build; set run-install: false only when the workflow needs an explicit install step. In repos that pin GitHub Actions, pin setup-vp to a full commit SHA with a same-line exact version comment and let Dependabot maintain it.node-version; package-manager versions come from package.json#packageManager; Vite+ comes from the repo's vite-plus dependency or workspace catalog. Do not repeat Node, pnpm, or Vite+ literals in workflows when a source file can be readvite-plus/test (and vite-plus/test/browser/context for browser mode)vp dev, vp test, vp test watch, vp test run --coverage, vp pack, vp build, vp preview, vp update, and vp run <script> (or vpr <script>) over direct package-manager, raw Vitest, or tsdown wiringvp config, .vite-hooks, and vp staged as the default hook stackvite.config.ts: no parallel vitest.config.ts, .oxlintrc*, .oxfmtrc*, or tsdown.config.tsvp commands in the same changevp create, vp migrate), editor/agent config, local guidance-file discovery, and validation path.vite.config.ts, test imports, hooks, and packaging together. Verify with vp check && vp test before moving on.vp upgrade (global), then vp update vite-plus @voidzero-dev/vite-plus-core @voidzero-dev/vite-plus-test (project). Confirm with vp outdated.vp install && vp check && vp test, then verify vp build or vp pack artifacts, vp preview where applicable, vp test run --coverage, and vp staged on a staged change.Before changing CI, preserve one canonical version owner:
.node-version; wire it through node-version-file: ".node-version"package.json#packageManagervite-plus dependency or workspace catalog; when CI needs an explicit version, derive it from that source with a structured parserConcrete shapes:
- uses: voidzero-dev/setup-vp@<full-sha> # v1.x.y
with:
node-version-file: ".node-version"
cache: true
- 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",vp create / vp migrate --agent <name> --editor <name> over hand-rolling agent or editor config.node-version:, pnpm@, corepack prepare, and inline version: "0.. Keep action pins separate: GitHub Action SHAs and their same-line version comments are allowed because they identify the action, not the project toolchain.vp check is not running type-aware lint or type checks, confirm lint.options.typeAware and lint.options.typeCheck in vite.config.ts, and check for compilerOptions.baseUrl in tsconfig.json — tsgolint does not support baseUrl and Vite+ silently skips type-aware checks when it is present.See references/known-issues.md for current upstream caveats (single-file vp check --fix, SSR instanceof failures, Cloudflare Workers tests, @vitest/coverage-v8 mixed-version warnings).