Vite plus best practices
Skill Firzus/agent-skills/skills/web/vite-plus-best-practices
Agent Skills for AI coding assistants
npx -y skills add Firzus/agent-skills --skill vite-plus-best-practicesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Vite+ (vp) unified toolchain: unified config, built-in ≠ script, vp check, pack vs build, and migrate. Covers setup (vp install, env, managed runtime), the vp command surface (dev, build, check, test, run, pack, node), vite.config.ts blocks (including check), monorepo overrides, task caching, commit hooks, library packaging, and migrating Vite/Vitest/ESLint/Prettier projects. Use when the user mentions Vite+, vite-plus, the `vp` or `vpx` CLI, Oxlint/Oxfmt in a Vite context, tsdown, Vite Task, or asks to set up, configure, migrate, scaffold, review, or upgrade a Vite+ project.
SKILL.md
5.1 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
Vite+ Best Practices
Apply these rules when setting up, writing, reviewing, or migrating a Vite+ project — configuring vite.config.ts, running vp commands, or wiring Vite+ into CI / coding agents.
Done when: every touched package uses vite-plus / vite-plus/test imports where required (exceptions: non-config vite imports via the core alias; @nuxt/test-utils packages keeping upstream vitest; pnpm direct vite entries aliased to core — leave those); no legacy per-tool config remains unless a documented exception applies; upgrade/migrate followed the vp migrate path; and vp check && vp test plus vp build (apps) or vp pack (libs/CLIs) pass.
Vite+ is a unified toolchain: one CLI and one config file replace the usual split of Vite, Vitest, ESLint/Oxlint, Prettier/Oxfmt, tsdown, lint-staged, and a task runner.
| Part | What it is | Scope |
|---|---|---|
vp | Global CLI + managed Node.js / package-manager runtime | Per machine |
vite-plus | Local package installed in each project | Per project |
Setup
Fastest path to a working project. Full details in setup.md (install, env, deps, create, upgrade).
# 1. Install the global vp CLI (once per machine)
curl -fsSL https://vite.plus | bash # macOS / Linux
irm https://vite.plus/ps1 | iex # Windows (PowerShell)
# 2. Open a NEW shell, then verify
vp help
# 3a. New project
vp create # interactive scaffold
vp install # install dependencies
# 3b. OR migrate an existing project (Vite 8+ / Vitest 4.1+ required first)
vp migrate --no-interactive
Daily loop (humans, CI, agents):
vp dev # dev server (Vite)
vp check # format + lint + type-check, one pass
vp test # tests (single run — watch is opt-in)
vp build # production build (apps) — use vp pack for libs/CLIs
- CI install: use the
setup-vpGitHub Action (prefer it over the shell installer in CI). - Managed runtime:
vpmanagesnode/ package managers by default (vp env on). Usevp env offfor system-first,vp implodeto fully remove Vite+.
Golden Rules
High-leverage rules. Each links to deeper reference.
- Unified config. Everything lives in a single
vite.config.tsusing blocks (server,build,preview,test,lint,fmt,check,run,pack,staged,create). Put tool settings in those blocks — not invitest.config.ts,tsdown.config.ts,oxlint.config.*,.oxfmtrc.*,.prettierrc,eslint.config.*, orlint-staged.config.*. → config.md - Import from
vite-plusfor config and tests. Config:import { defineConfig } from 'vite-plus'. Tests:import { … } from 'vite-plus/test'(browser context:vite-plus/test/browser/context). Rewrite nuances, Nuxt, and pnpmvitepins: → monorepo-and-migration.md - Built-in ≠ script.
vp build/vp test/vp devalways run the bundled tool. To run a same-namedpackage.jsonscript, usevp run <name>(aliasvpr). → commands.md vp checkis the validation command. It dedupes Oxfmt + Oxlint + type-check (tsgolint/tsgo). Prefer it over chaining standalonevp lint/vp fmt/tsc --noEmit. Keeplint.options.typeAwareandtypeCheckon. Use thecheckblock to set default skip flags. → config.mdvp buildfor apps,vp packfor libraries/CLIs. Package libraries withvp pack. → config.md- Migrate, then verify. Run
vp migrate(also the recommended local upgrade path), confirm import rewrites, remove obsoletevitest/@vitest/browser*only where migrate allows (keep intentional pnpmvite→core entries), finallyvp install && vp check && vp testplusvp build(apps) orvp pack(libs/CLIs). Prefervp migrateover hand-updating aliases. → monorepo-and-migration.md
Reference Map
Load on demand:
| When | File |
|---|---|
Installing vp, managed Node, deps, scaffolding, upgrading | setup.md |
Built-in vs scripts, vpx/exec/dlx, task runner & caching, agent loop | commands.md |
vite.config.ts blocks (incl. check), imports, check/test/build/pack, hooks | config.md |
Monorepo overrides, workspace filters, vp migrate flow & agent prompt | monorepo-and-migration.md |
What ships with it: 4 files
31.3 KB alongside SKILL.md
- commands.md6.4 KB
- config.md7.5 KB
- monorepo-and-migration.md10.3 KB
- setup.md7.1 KB
Gives 0 of the 12 instructions most quality gates skills give in ~1.3k tokens
Counted across 1,195 of the 2,094 authors here whose files we hold, read 2026-08-07
- Read the output and check the exit codein 54 of 1195, across 14 files
- Verify requirements using a line-by-line checklistin 53 of 1195, across 12 files
- Identify the verification command proving the claimin 51 of 1195, across 12 files
- Run the full verification commandin 50 of 1195, across 11 files
- Verify output confirms the claimin 49 of 1195, across 12 files
- Check version control diff after agent delegationin 46 of 1195, across 6 files
- State claim with evidencein 44 of 1195, across 4 files
- Run the test suitein 33 of 1195, across 26 files
- Keep state in memory by defaultin 27 of 1195, across 6 files
- Make prototype runnable with one commandin 26 of 1195, across 5 files
- Produce a verification reportin 25 of 1195, across 14 files
- Detect the package manager from lockfilesin 24 of 1195, across 5 files
Said here and by no other author read
- use vite-plus imports for config and tests
- put all tool settings in vite.config.ts
- run vp migrate to upgrade existing projects
- use vp build for apps and vp pack for libraries
- use vp run to execute package.json scripts
- run vp check for linting and type-checking
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.