You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Run before submitting changes: `node --run typecheck`, `node --run eslint`, `node --run format`, `node --run test`.
63
+
64
+
<!-- TODO: review -->
65
+
<!--VITE PLUS START-->
66
+
67
+
<!-- # Using Vite+, the Unified Toolchain for the Web -->
68
+
69
+
This project is using 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`. Vite+ is distinct from Vite, but it invokes Vite through `vp dev` and `vp build`.
70
+
71
+
## Vite+ Workflow
72
+
73
+
`vp` is a global binary that handles the full development lifecycle. Run `vp help` to print a list of commands and `vp <command> --help` for information about a specific command.
74
+
75
+
### Start
76
+
77
+
- create - Create a new project from a template
78
+
- migrate - Migrate an existing project to Vite+
79
+
- config - Configure hooks and agent integration
80
+
- staged - Run linters on staged files
81
+
- install (`i`) - Install dependencies
82
+
- env - Manage Node.js versions
83
+
84
+
### Develop
85
+
86
+
- dev - Run the development server
87
+
- check - Run format, lint, and TypeScript type checks
88
+
- lint - Lint code
89
+
- fmt - Format code
90
+
- test - Run tests
91
+
92
+
### Execute
93
+
94
+
- run - Run monorepo tasks
95
+
- exec - Execute a command from local `node_modules/.bin`
96
+
- dlx - Execute a package binary without installing it as a dependency
97
+
- cache - Manage the task cache
98
+
99
+
### Build
100
+
101
+
- build - Build for production
102
+
- pack - Build libraries
103
+
- preview - Preview production build
104
+
105
+
### Manage Dependencies
106
+
107
+
Vite+ automatically detects and wraps the underlying package manager such as pnpm, npm, or Yarn through the `packageManager` field in `package.json` or package manager-specific lockfiles.
108
+
109
+
- add - Add packages to dependencies
110
+
- remove (`rm`, `un`, `uninstall`) - Remove packages from dependencies
111
+
- update (`up`) - Update packages to latest versions
112
+
- dedupe - Deduplicate dependencies
113
+
- outdated - Check for outdated packages
114
+
- list (`ls`) - List installed packages
115
+
- why (`explain`) - Show why a package is installed
116
+
- info (`view`, `show`) - View package information from the registry
117
+
- link (`ln`) / unlink - Manage local package links
118
+
- pm - Forward a command to the package manager
119
+
120
+
### Maintain
121
+
122
+
- upgrade - Update `vp` itself to the latest version
123
+
124
+
These commands map to their corresponding tools. For example, `vp dev --port 3000` runs Vite's dev server and works the same as Vite. `vp test` runs JavaScript tests through the bundled Vitest. The version of all tools can be checked using `vp --version`. This is useful when researching documentation, features, and bugs.
125
+
126
+
## Common Pitfalls
127
+
128
+
-**Using the package manager directly:** Do not use pnpm, npm, or Yarn directly. Vite+ can handle all package manager operations.
129
+
-**Always use Vite commands to run tools:** Don't attempt to run `vp vitest` or `vp oxlint`. They do not exist. Use `vp test` and `vp lint` instead.
130
+
-**Running scripts:** Vite+ built-in commands (`vp dev`, `vp build`, `vp test`, etc.) always run the Vite+ built-in tool, not any `package.json` script of the same name. To run a custom script that shares a name with a built-in command, use `vp run <script>`. For example, if you have a custom `dev` script that runs multiple services concurrently, run it with `vp run dev`, not `vp dev` (which always starts Vite's dev server).
131
+
-**Do not install Vitest, Oxlint, Oxfmt, or tsdown directly:** Vite+ wraps these tools. They must not be installed directly. You cannot upgrade these tools by installing their latest versions. Always use Vite+ commands.
132
+
-**Use Vite+ wrappers for one-off binaries:** Use `vp dlx` instead of package-manager-specific `dlx`/`npx` commands.
133
+
-**Import JavaScript modules from `vite-plus`:** Instead of importing from `vite` or `vitest`, all modules should be imported from the project's `vite-plus` dependency. For example, `import { defineConfig } from 'vite-plus';` or `import { expect, test, vi } from 'vite-plus/test';`. You must not install `vitest` to import test utilities.
134
+
-**Type-Aware Linting:** There is no need to install `oxlint-tsgolint`, `vp lint --type-aware` works out of the box.
135
+
136
+
## CI Integration
137
+
138
+
For GitHub Actions, consider using [`voidzero-dev/setup-vp`](https://github.com/voidzero-dev/setup-vp) to replace separate `actions/setup-node`, package-manager setup, cache, and install steps with a single action.
139
+
140
+
```yaml
141
+
- uses: voidzero-dev/setup-vp@v1
142
+
with:
143
+
cache: true
144
+
- run: vp check
145
+
- run: vp test
146
+
```
147
+
148
+
## Review Checklist for Agents
149
+
150
+
- [ ] Run `vp install` after pulling remote changes and before getting started.
151
+
- [ ] Run `vp check` and `vp test` to validate changes.
0 commit comments