Avoid circular binding resolution between vite-plus-core and vite-plus
bug
## Context
While investigating a pnpm `enable-global-virtual-store` issue, `@voidzero-dev/vite-plus-core` failed to resolve `vite-plus/binding` when executed from pnpm's global virtual store realpath.
Current release rewrite:
```txt
@rolldown/binding-* -> vite-plus/binding
```
This creates an awkward package relationship:
```txt
vite-plus -> @voidzero-dev/vite-plus-core -> vite-plus/binding
```
A proposed optional peer dependency workaround(#2053) makes the dependency explicit, but it still feels circular because `vite-plus` already depends on `@voidzero-dev/vite-plus-core` .
## Proposal
Consider moving the binding resolver into a neutral package, for example:
```txt
@voidzero-dev/vite-plus-binding
```
Then both packages can depend on it:
```txt
vite-plus -> @voidzero-dev/vite-plus-binding
@voidzero-dev/vite-plus-core -> @voidzero-dev/vite-plus-binding
```
and the release rewrite can become:
```txt
@rolldown/binding-* -> @voidzero-dev/vite-plus-binding
```
`vite-plus/binding` could remain as a compatibility re-export.
## Benefit
This avoids the circular `vite-plus -> core -> vite-plus/binding` shape while making native binding resolution explicit for pnpm global virtual store layouts.
0 条评论