voidzero-dev / voidzero-dev/vite-plus
vp migrate: follow-up UX & correctness issues from real-world e2e
- Dominant language
- Rust
- Stars
- 5.8k
- Forks
- 261
- Avg merge
- 1d 34m
- Merged PRs (30d)
- 135
Description
Follow-up tracker for the unresolved items surfaced during the real-world migration pass in https://github.com/voidzero-dev/vite-plus/pull/1891#issuecomment-4764461957.
Goal: keep improving the `vp migrate` experience by fixing the concrete failures below. Each item links back to the project PR / CI log where it reproduces. Grouped by theme, not by project.
## 1. Migrated config is wrong or lossy or not good
- [ ] **Don't pin `pnpm@11.1.1`** — migrate selects a bad `packageManager` pin.
vinext ([review](https://github.com/fengmk2/vinext/pull/23/changes#r3510391060))
- [ ] **`packageManager` invalid semver** — `Invalid semver version "11.17.0" does not match "11.13.0" for "packageManager"`.
svelte-multiselect ([log](https://github.com/fengmk2/svelte-multiselect/actions/runs/28380981944/job/84083204616?pr=9))
- [ ] **`vite` should be written to the catalog, not inline** — migrate left a direct `vite` version instead of a catalog reference.
typed-xlsx ([diff](https://github.com/fengmk2/typed-xlsx/commit/de73374f269e305c746dc68ef3e01ee75fe1756b#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519R39), [source](https://github.com/voidzero-dev/vite-plus/pull/1891/changes/bf052feab8115df6b62b48a22976128624f0f92b))
- [ ] **IDE settings JSON comments stripped** — migrate rewrote `.vscode/settings.json` (jsonc) and dropped its comments.
vue-core ([diff](https://github.com/fengmk2/vue-core/pull/23/changes#diff-a5de3e5871ffcc383a2294845bd3df25d3eeff6c29ad46e3a396577c413bf357)); fix PR https://github.com/voidzero-dev/vite-plus/pull/1956
- [ ] **`tsconfig.json` not auto-migrated** — leaves removed `moduleResolution: node10`, which now errors: `Option 'moduleResolution=node10' has been removed.`
vitepress-carbon ([log](https://github.com/fengmk2/vitepress-carbon/actions/runs/28371465191/job/84049985811?pr=9))
- [ ] **`@types/node` peer floor too low after migrate** — `@voidzero-dev/vite-plus-core` requires `@types/node ^20.19.0 || >=22.12.0`, but the project pins `^20.14.12`. Below that peer range, pnpm resolves two separate `vitest@4.1.9` instances, so the snapshot singleton state is lost at runtime.
iles ([PR](https://github.com/fengmk2/iles/pull/1))
- [ ] Should use `catalog:vite-plus` instead of `catalog` on pnpm https://github.com/npmx-dev/npmx.dev/pull/2990/changes#diff-18ae0a0fab29a7db7aded913fd05f30a2c8f6c104fadae86c9d217091709794c
- [x] when `@playwright/test` deps exists, no need to add `playwright` to devDeps. https://github.com/npmx-dev/npmx.dev/pull/2990/changes#r3523965945
Fixed in https://github.com/voidzero-dev/vite-plus/pull/2637
- [ ] peerDependencyRules is no need? https://github.com/npmx-dev/npmx.dev/pull/2990#discussion_r3523966046
## 2. Lint migration
- [ ] ~~**`vp lint -c` rejects duplicate flag** — generated command runs `vp lint -c .oxlintrc.json` and fails with `Error: argument '-c' cannot be used multiple times in this context`.~~
pdfme ([log](https://github.com/fengmk2/pdfme/actions/runs/28246706049/job/83687478374?pr=10))
- [ ] **Unknown oxlint rule after migrate** — `Rule 'camelcase' not found in plugin 'eslint'`.
tech-interview-handbook ([PR](https://github.com/fengmk2/tech-interview-handbook/pull/3))
## 3. Post-migrate build / type resolution
- [ ] **Nuxt build: `Cannot find package 'rolldown'`** — `@nuxt/vite-builder` imports `rolldown`, which is not resolvable after migrate. Reproduces on multiple Nuxt projects.
npmx ([diff](https://github.com/fengmk2/npmx.dev/pull/26/changes/3f449662158f64de4dd483e5ba584fecd97fc7f3)),
unplugin-turbo-console ([log](https://github.com/fengmk2/unplugin-turbo-console/actions/runs/28383903122/job/84093433160?pr=9))
- [ ] **`vite-plus/client` types not found** — commit-hook `tsc --noEmit` fails: `Cannot find type definition file for 'vite-plus/client'` (from `"types": ["vitest/globals", "vite-plus/client"]`).
gitify ([log](https://github.com/fengmk2/gitify/actions/runs/28386568559/job/84102661464?pr=8))
- [ ] ~~**`@voidzero-dev/vite-plus-test` not found in tests** — `Cannot find package '@voidzero-dev/vite-plus-test'` imported from a `*.test.ts`.~~
react-doctor ([PR](https://github.com/fengmk2/react-doctor/pull/4))
- [ ] **postinstall failures** — "postinstall hells" after migrate.
odysee-frontend ([PR](https://github.com/fengmk2/odysee-frontend/pull/2))
## 4. pnpm trust policy (`no-downgrade`)
- [ ] **Trust-downgrade blocks a legit prerelease dep** — `ERR_PNPM_TRUST_DOWNGRADE High-risk trust downgrade for "effect@4.0.0-beta.70" (possible package takeover)`.
react-doctor ([PR](https://github.com/fengmk2/react-doctor/pull/4))
## Won't-fix / out of scope (tracked for context)
- matterviz: `TS2783: 'staged' is specified more than once` — caused by the user's shared dotfiles config, not migrate. ([PR](https://github.com/fengmk2/matterviz/pull/4))
- ohbug: install fails — user code issue, won't fix. ([PR](https://github.com/fengmk2/ohbug/pull/10))
## Pending e2e runs (no migrate bug identified yet, just not finished)
cs-demo-manager, museeks, bippy, rari, dify, BlockNote, vuestrata, anywidget, media-processors, sigle, mantine. These still need a completed migration run; open a dedicated issue only if a real bug surfaces. Status stays tracked in https://github.com/voidzero-dev/vite-plus/pull/1891#issuecomment-4764461957.
Contributor guide
Assessment
This issue has not been assessed yet.