Vite plus best practices
Skill Firzus/agent-skills/skills/web/vite-plus-best-practices
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.From its SKILL.md
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
- 2 stars2 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.
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