Remove allowCompoundComponents migration workaround after upstream support

Open
#2,703 0 comments 0 reactions 1 assignee View on GitHub

@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
Domain
cli, testing, tooling

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 from packages/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.ts with coverage that preserves the option in root and override rules without a warning.
  • Update the new_create_vite_migrates_eslint_prettier snapshot to retain the supported option. Keep its vp check step 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from voidzero-dev/vite-plus

All issues in voidzero-dev/vite-plus

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.