Feat/migvitetovite+
Summary
This merge request migrates the repository’s frontend toolchain from the older split setup of Vite + Vitest + ESLint + Prettier + custom staged checks to Vite+ wherever it is the appropriate replacement.
The primary goal is to consolidate development, build, test, lint, format, type-check, and staged-file workflows behind a single toolchain and reduce duplicated configuration across the repository.
What Changed
- Replaced core npm scripts in
package.jsonso the following now run throughvp:devbuildpreviewlintformatformat:checktypechecktesttest:coveragevalidatevalidate:staged
- Aliased
viteandvitestto the Vite+ packages and addedvite-plusas the primary toolchain dependency. - Moved the main lint, format, test, and staged-file configuration into
vite.config.ts. - Added Vite+ staged-file rules:
- staged JS/TS files →
vp check --fix - staged markup/config files →
vp fmt --write
- staged JS/TS files →
- Migrated formatting behavior from Prettier config files to Vite+ formatting config with
.oxfmtignore. - Removed legacy tool-specific files now replaced by Vite+:
eslint.config.mjs.prettierrc.json.prettierignorescripts/runStagedChecks.mjs- stale
bun.lock
- Updated
src/vite-env.d.tsto use Vite+ client types. - Rewrote test imports from
vitesttovite-plus/test. - Adjusted a small set of source and test files to satisfy stricter Vite+ and type-aware lint rules.
- Updated CI in
.gitlab-ci.ymlto use the migrated scripts instead of the old ESLint-specific flow. - Updated contributor and user documentation to reflect the new toolchain and command expectations.
- Cleaned
knip.jsonto remove stale ignore entries from the old stack.
Behavioral Impact
- No intended product behavior changes
- This is primarily a toolchain and repository workflow migration
- Developer-facing workflows remain
npm run ... - These wrappers now execute Vite+ under the hood
- Pre-commit behavior is preserved
- Staged-file processing now comes from Vite+ instead of the removed custom script
Files Reviewers Should Focus On
package.jsonvite.config.ts.gitlab-ci.ymltsconfig.jsontsconfig.node.jsonsrc/vite-env.d.tstests/*src/modules/teams/teamManager.test.tsREADME.mdCONTRIBUTING.mddocs/USER_MANUAL.md
Validation Performed
The following commands were executed successfully after migration:
npm run lint npm run format:check npm run typecheck npm run validate npm run test:coverage npm run build npm run knip
All of the above passed successfully.
Intentional Non-Migrations
The following remain outside Vite+ because they are repository-specific or not cleanly replaced:
validate:i18ni18n:replace- changelog scripts
- git-hook setup script
knip@vitejs/plugin-react@vitest/coverage-v8
Known Warnings / Follow-up
-
@vitejs/plugin-reactstill emits Rolldown/esbuild deprecation warnings under Vite+ - Coverage still prints an upstream mixed-version warning involving local
vpand@vitest/coverage-v8
These warnings do not currently block:
- lint
- tests
- coverage
- build
However, they should be tracked separately if we want a fully warning-free pipeline.
Commit Breakdown
-
3cef2e3—chore(vite-plus): migrate core tooling and config -
05d6af9—refactor: satisfy Vite+ lint and type checks -
0e93973—test: migrate suite to Vite+ runner imports -
e4de55b—chore: update repo automation and docs for Vite+