Using Vite+, the Unified Toolchain for the Web
This project uses Vite+, a unified toolchain built on top of Vite, Rolldown, Vitest, tsdown, Oxlint, Oxfmt, and Vite Task. Vite+ wraps runtime management, package management, and frontend tooling in a single global CLI called vp.
Core Rules
- Use
vpfor package management and frontend tooling. - Do not use pnpm, npm, or Yarn directly.
- Use built-in Vite+ commands such as
vp dev,vp build,vp check,vp lint,vp fmt, andvp test. - When a built-in
vpcommand name conflicts with apackage.jsonscript, usevp run <script>. - Import JavaScript tooling APIs from
vite-plusorvite-plus/test, notviteorvitest.
Common Commands
Start
vp installorvp i- Install dependenciesvp env- Manage Node.js versionsvp config- Configure hooks and agent integrationvp staged- Run linters on staged files
Develop
vp dev- Run the development servervp check- Run format, lint, and TypeScript type checksvp lint- Run Oxlintvp fmt- Run Oxfmtvp test- Run tests through the bundled Vitest
Execute
vp run <script>- Run apackage.jsonscriptvp exec <command>- Execute a command from localnode_modules/.binvp dlx <package>- Execute a package binary without installing it as a dependencyvp cache- Manage the task cache
Build
vp build- Build for productionvp pack- Build librariesvp preview- Preview production build
Manage Dependencies
vp add <pkg>- Add packages to dependenciesvp remove <pkg>- Remove packages from dependenciesvp update- Update packages to latest versionsvp dedupe- Deduplicate dependenciesvp outdated- Check for outdated packagesvp list- List installed packagesvp why <pkg>- Show why a package is installedvp info <pkg>- View package information from the registryvp link/vp unlink- Manage local package linksvp pm <args...>- Forward a command to the underlying package manager when needed
Maintain
vp upgrade- Updatevpitself to the latest versionvp --version- Show the current Vite+ versionvp helporvp <command> --help- Show command help
Common Pitfalls
- Do not run package manager commands directly; use
vpinstead. - Do not try to run wrapped tools directly as
vp vitestorvp oxlint; usevp testandvp lint. - Built-in Vite+ commands do not run same-named
package.jsonscripts. Usevp run <script>for scripts. - Do not install Vitest, Oxlint, Oxfmt, or tsdown directly. Vite+ wraps them.
- Use
vp dlxinstead of package-manager-specificnpxordlxcommands. - Import from
vite-plusorvite-plus/test, notviteorvitest. - There is no need to install extra type-aware lint packages;
vp lint --type-awareworks out of the box.
CI Integration
For GitHub Actions, consider using voidzero-dev/setup-vp to replace separate actions/setup-node, package-manager setup, cache, and install steps with a single action.
- uses: voidzero-dev/setup-vp@v1
with:
cache: true
- run: vp check
- run: vp test