Skip to content

Commit bcecc09

Browse files
authored
Merge pull request #35 from mjun0812/chore/migrate-to-vite-plus
chore: migrate to Vite+ unified toolchain
2 parents ead7123 + 1408690 commit bcecc09

26 files changed

Lines changed: 20528 additions & 24479 deletions

.github/workflows/_test-container.yml

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,20 +79,14 @@ jobs:
7979
- name: Checkout
8080
uses: actions/checkout@v6
8181

82-
- name: Install pnpm
83-
uses: pnpm/action-setup@v6
84-
85-
- name: Setup Node.js
86-
uses: actions/setup-node@v6
82+
- name: Setup Vite+
83+
uses: voidzero-dev/setup-vp@v1
8784
with:
85+
cache: true
8886
node-version-file: .node-version
89-
cache: pnpm
90-
91-
- name: Install Dependencies
92-
run: pnpm install --frozen-lockfile
9387

9488
- name: Build
95-
run: pnpm run build
89+
run: vp pack
9690

9791
- name: Test Local Action
9892
id: setup-cuda

.github/workflows/_test.yml

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,14 @@ jobs:
4141
- name: Checkout
4242
uses: actions/checkout@v6
4343

44-
- name: Install pnpm
45-
uses: pnpm/action-setup@v6
46-
47-
- name: Setup Node.js
48-
uses: actions/setup-node@v6
44+
- name: Setup Vite+
45+
uses: voidzero-dev/setup-vp@v1
4946
with:
47+
cache: true
5048
node-version-file: .node-version
51-
cache: pnpm
52-
53-
- name: Install Dependencies
54-
run: pnpm install --frozen-lockfile
5549

5650
- name: Build
57-
run: pnpm run build
51+
run: vp pack
5852

5953
- name: Test Local Action
6054
id: setup-cuda

.github/workflows/ci.yml

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,29 +17,17 @@ jobs:
1717
- name: Checkout
1818
uses: actions/checkout@v6
1919

20-
- name: Install pnpm
21-
uses: pnpm/action-setup@v6
22-
23-
- name: Setup Node.js
24-
uses: actions/setup-node@v6
20+
- name: Setup Vite+
21+
uses: voidzero-dev/setup-vp@v1
2522
with:
23+
cache: true
2624
node-version-file: .node-version
27-
cache: pnpm
28-
29-
- name: Install Dependencies
30-
run: pnpm install --frozen-lockfile
31-
32-
- name: Check Format
33-
run: pnpm run format:check
34-
35-
- name: Lint
36-
run: pnpm run lint
3725

38-
- name: Type Check
39-
run: pnpm run typecheck
26+
- name: Check Format, Lint and TypeCheck
27+
run: vp check
4028

4129
- name: Run Unit Tests
42-
run: pnpm run test
30+
run: vp test run
4331

4432
Test:
4533
name: Small Test

.github/workflows/release.yml

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,25 +21,19 @@ jobs:
2121
git config --global user.name "github-actions[bot]"
2222
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
2323
24-
- name: Install pnpm
25-
uses: pnpm/action-setup@v6
26-
27-
- name: Setup Node.js
28-
uses: actions/setup-node@v6
24+
- name: Setup Vite+
25+
uses: voidzero-dev/setup-vp@v1
2926
with:
27+
cache: true
3028
node-version-file: .node-version
31-
cache: pnpm
32-
33-
- name: Install Dependencies
34-
run: pnpm install --frozen-lockfile
3529

3630
- name: Build
37-
run: pnpm run build
31+
run: vp pack
3832

3933
- name: Check for uncommitted changes
4034
run: |
4135
if [ -n "$(git status --porcelain dist)" ]; then
42-
echo "::error::dist folder is not up to date. Please run 'pnpm run build' locally and commit again."
36+
echo "::error::dist folder is not up to date. Please run 'vp pack' locally and commit again."
4337
exit 1
4438
fi
4539

.prettierrc

Lines changed: 0 additions & 18 deletions
This file was deleted.

.vite-hooks/pre-commit

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
vp staged

.vscode/extensions.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"recommendations": ["VoidZero.vite-plus-extension-pack"]
3+
}

.vscode/settings.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"editor.defaultFormatter": "oxc.oxc-vscode",
3+
"oxc.fmt.configPath": "./vite.config.ts",
4+
"editor.formatOnSave": true,
5+
"editor.formatOnSaveMode": "file",
6+
"editor.codeActionsOnSave": {
7+
"source.fixAll.oxc": "explicit"
8+
}
9+
}

CLAUDE.md

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
<!--VITE PLUS START-->
2+
3+
# Using Vite+, the Unified Toolchain for the Web
4+
5+
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`.
6+
7+
## Vite+ Workflow
8+
9+
`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.
10+
11+
### Start
12+
13+
- create - Create a new project from a template
14+
- migrate - Migrate an existing project to Vite+
15+
- config - Configure hooks and agent integration
16+
- staged - Run linters on staged files
17+
- install (`i`) - Install dependencies
18+
- env - Manage Node.js versions
19+
20+
### Develop
21+
22+
- dev - Run the development server
23+
- check - Run format, lint, and TypeScript type checks
24+
- lint - Lint code
25+
- fmt - Format code
26+
- test - Run tests
27+
28+
### Execute
29+
30+
- run - Run monorepo tasks
31+
- exec - Execute a command from local `node_modules/.bin`
32+
- dlx - Execute a package binary without installing it as a dependency
33+
- cache - Manage the task cache
34+
35+
### Build
36+
37+
- build - Build for production
38+
- pack - Build libraries
39+
- preview - Preview production build
40+
41+
### Manage Dependencies
42+
43+
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.
44+
45+
- add - Add packages to dependencies
46+
- remove (`rm`, `un`, `uninstall`) - Remove packages from dependencies
47+
- update (`up`) - Update packages to latest versions
48+
- dedupe - Deduplicate dependencies
49+
- outdated - Check for outdated packages
50+
- list (`ls`) - List installed packages
51+
- why (`explain`) - Show why a package is installed
52+
- info (`view`, `show`) - View package information from the registry
53+
- link (`ln`) / unlink - Manage local package links
54+
- pm - Forward a command to the package manager
55+
56+
### Maintain
57+
58+
- upgrade - Update `vp` itself to the latest version
59+
60+
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.
61+
62+
## Common Pitfalls
63+
64+
- **Using the package manager directly:** Do not use pnpm, npm, or Yarn directly. Vite+ can handle all package manager operations.
65+
- **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.
66+
- **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).
67+
- **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.
68+
- **Use Vite+ wrappers for one-off binaries:** Use `vp dlx` instead of package-manager-specific `dlx`/`npx` commands.
69+
- **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.
70+
- **Type-Aware Linting:** There is no need to install `oxlint-tsgolint`, `vp lint --type-aware` works out of the box.
71+
72+
## CI Integration
73+
74+
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.
75+
76+
```yaml
77+
- uses: voidzero-dev/setup-vp@v1
78+
with:
79+
cache: true
80+
- run: vp check
81+
- run: vp test
82+
```
83+
84+
## Review Checklist for Agents
85+
86+
- [ ] Run `vp install` after pulling remote changes and before getting started.
87+
- [ ] Run `vp check` and `vp test` to validate changes.
88+
<!--VITE PLUS END-->

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ steps:
7575
uses: mjun0812/setup-cuda@v1
7676
with:
7777
version: '13.0'
78-
method: 'network' # or 'local', 'auto'
78+
method: 'network' # or 'local', 'auto'
7979
```
8080
8181
### Install CUDA on Fedora-based distribution

0 commit comments

Comments
 (0)