`vp migrate` silently drops custom lint rules when a `jsPlugin`'s namespace can't be derived
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- javascript, typescript
Research direction
Start at the vp migrate entry point that merges .oxlintrc.json into vite.config.ts, then trace how local jsPlugin namespaces are matched. Reproduce with the linked Kumo commit and inspect the ./lint/kumo.js plugin's meta.name; done when its kumo/* rules survive migration and the result remains observable for dropped plugins.
Written by the indexing model from the issue text.
Description
Describe the bug
When vp migrate merges .oxlintrc.json into vite.config.ts, it drops all rules whose namespace it can't match to a plugin.
For a local jsPlugin like ./lint/kumo.js, the plugin's real namespace (kumo, from its meta.name) is never derived from the path, so every kumo/* rule is removed from the merged config.
This happens silently for rules while dropped plugins produce a warning.
Solution approach
We could resolve the real namespace (import the plugin and read meta.name) which is exactly what oxlint does at lint time.
Reproduction
https://github.com/cloudflare/kumo/commit/2a463f7f260f5a3c4523099600fe65b4764acff4
Steps to reproduce
- Try migrating this app via
vp migrate - See the rules missing
System Info
Source .node-version
Source Path /Users/alichter/Programming/kumo/.node-version
Project Root /Users/alichter/Programming/kumo
Tool Paths:
node /Users/alichter/.vite-plus/js_runtime/node/24.12.0/bin/node
npm /Users/alichter/.vite-plus/js_runtime/node/24.12.0/bin/npm
npx /Users/alichter/.vite-plus/js_runtime/node/24.12.0/bin/npx
Package Manager:
Name pnpm
Version 10.22.0
Source packageManager
Source Path /Users/alichter/Programming/kumo/package.json
Project Root /Users/alichter/Programming/kumo
Bin Path /Users/alichter/.vite-plus/package_manager/pnpm/10.22.0/pnpm/bin/pnpm
Used Package Manager
pnpm
Logs
Validations
- Read the Contributing Guidelines.
- Check that there isn't already an issue for the same bug.
- Confirm this is a Vite+ issue and not an upstream issue (Vite, Vitest, tsdown, Rolldown, or Oxc).
- The provided reproduction is a minimal reproducible example.
- Dominant language
- Rust
- Stars
- 5.8k
- Forks
- 263
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 148
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 ·
-
pending triage
Difficulty 5/5 Over a week Newbie friendliness 45/100
voidzero-dev/vite-plus#2781 · 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 ·
All issues in voidzero-dev/vite-plus
Similar issues
-
Browser (wasm) relay client cannot connect to relays whose URL has a trailing-dot FQDN hostname Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
n0-computer/iroh#4550 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
paritytech/zombienet-sdk#591 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
farion1231/cc-switch#7638 · 1 comment ·
-
onnx-ir re-exports ModelProto and GraphProto but not NodeProto, AttributeProto and AttributeType Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100