Remove allowCompoundComponents migration workaround after upstream support
@fengmk2 is already working on this.
Since Sep 16, 2026.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 58/100
- Issue type
- Refactor
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript, vite
Research direction
Start by checking the bundled dependency versions and the schema support for allowCompoundComponents. Read packages/cli/src/migration/migrator/eslint.ts and packages/cli/src/migration/tests/react-refresh-options.spec.ts, then update the related new_create_vite_migrates_eslint_prettier snapshot. Done means root and override rules preserve the option without a warning, and the generated React TypeScript project passes its vp check.
Written by the indexing model from the issue text.
Description
PR #2702 adds a temporary migration workaround for eslint-plugin-react-refresh@0.5.7. Its Vite preset enables allowCompoundComponents. @oxlint/migrate@1.82.0 copies this option to react/only-export-components, but the bundled Oxlint rejects it. Migration therefore removes the option from root and override rules and warns the user.
Remove this workaround when the bundled @oxlint/migrate and Oxlint support the option end to end. Migrator support alone is insufficient if Oxlint still rejects the generated configuration. The final behavior must preserve allowCompoundComponents and accept the migrated configuration in vp check.
- Update the bundled dependencies to versions that support
allowCompoundComponents. - Remove
stripUnsupportedReactRefreshOption, its root and override calls, and the related warning frompackages/cli/src/migration/migrator/eslint.ts. - Replace the temporary schema guard and option-removal assertions in
packages/cli/src/migration/__tests__/react-refresh-options.spec.tswith coverage that preserves the option in root and override rules without a warning. - Update the
new_create_vite_migrates_eslint_prettiersnapshot to retain the supported option. Keep itsvp checkstep and confirm that the generated React TypeScript project accepts the configuration.
The schema guard in #2702 will fail when the installed Oxlint schema gains the option, so the workaround is reviewed during the dependency update.
- Dominant language
- Rust
- Stars
- 5.8k
- Forks
- 263
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 142
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from voidzero-dev/vite-plus
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
voidzero-dev/vite-plus#2097 · 10 comments · 2 reactions ·
-
enhancement
voidzero-dev/vite-plus#2766 · 4 comments · 1 reaction · 1 assignee ·
-
enhancement
voidzero-dev/vite-plus#2764 · 3 comments · 1 assignee ·
-
pending triage
Difficulty 3/5 1-2 days Newbie friendliness 68/100
voidzero-dev/vite-plus#2735 ·
-
enhancement pending triage
Difficulty 4/5 3-5 days Newbie friendliness 55/100
voidzero-dev/vite-plus#2698 · 10 comments · 1 reaction ·
All issues in voidzero-dev/vite-plus
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
bug team:backend track:services-maintenance
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
cowprotocol/services#4950 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
gitbutlerapp/gitbutler#15998 · 1 comment ·