voidzero-dev / voidzero-dev/vite-plus

vp run fails to resolve node_modules/.bin executables with pnpm 12 on Windows (cannot find binary path)

Geschlossen
#2,690 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
pending triage
Vorherrschende Sprache
Rust
Sterne
5.8k
Forks
262
Ø Merge
23 Std. 41 Min.
Gemergte PRs (30 T.)
138

Beschreibung

# `vp run` fails to resolve `.bin` executables with pnpm 12 on Windows (`Failed to find executable astro`)

## Environment

- vite-plus: latest (reproduced on 0.1.24 and current latest)
- pnpm: 12.4.1 (reproduces), pnpm 11 (works)
- OS: Windows 11 Pro 10.0.26200
- Node: 24.20.0 (via mise)
- shell: PowerShell 7 / Git Bash

## Summary

With the project installed by pnpm 12.4.1, `vp run` fails during task planning on
Windows even though the `node_modules/.bin` shims are well-formed and work fine
when invoked by pnpm itself.

## Steps to reproduce

1. Windows 11, pnpm 12.4.1 (`packageManager: pnpm@12.4.1`, pnpm via mise, `shamefullyHoist: true`)
2. `pnpm install`
3. Root script:
```json
"dev:all": "pnpm --filter @sdata/web-vue run build:module && pnpm --filter @sdata/web-vue run jsongen && pnpm --filter @sd-design/sd-vue-docs run docs:vendor:only && vp run --parallel --filter @sdata/web-vue --filter @sd-design/sd-vue-docs dev:serve"
```
4. `vp run dev:all` (docs package `dev:serve` script is `astro dev --host --force`)

## Actual result

```
error: Failed to plan tasks from `vp run --parallel --filter @sdata/web-vue --filter @sd-design/sd-vue-docs dev:serve` in task sd-design-vue-monorepo#dev:all
* Failed to find executable astro under cwd D:\work\sd-design\packages/sd-vue-docs with PATH: D:\work\sd-design\packages/sd-vue-docs\node_modules\.bin;D:\work\sd-design\node_modules\.bin;...
* cannot find binary path
```

The printed PATH starts with `packages/sd-vue-docs/node_modules/.bin`, which contains
the standard pnpm shims `astro`, `astro.cmd`, `astro.ps1`; `astro.cmd`'s target
(`node_modules/astro/bin/astro.mjs`) exists.

## Expected result

`vp run` resolves `astro` via `astro.cmd` (PATHEXT) like pnpm does, and starts the dev servers.

## Key observation (pnpm 11 vs 12)

- With **pnpm 12.4.1** installed `node_modules`: `vp run` fails as above.
- Rolling back to **pnpm 11** and reinstalling: `vp run` works.
- `pnpm --filter @sd-design/sd-vue-docs run dev:serve` works under **both** pnpm 11 and 12,
so pnpm 12's shims are functional; only vp's own executable resolution fails.
- Also reproduced with latest vite-plus after upgrading from 0.1.24 — not fixed upstream yet.
- Suspicious detail (may or may not be relevant): after the pnpm-11 reinstall, `.bin`
contains duplicate-case entries (`astro.cmd` + `astro.CMD`, same for vite/rolldown/vue-tsc).

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit dem Pfad für die Aufgabenplanung und die Auflösung ausführbarer Dateien von `vp run`, und reproduziere anschließend den Fall unter Windows 11 mit pnpm 12.4.1 und dem dokumentierten `dev:serve`-Skript. Vergleiche die Auflösung von `astro` über `node_modules/.bin/astro.cmd` mit pnpm 11; als abgeschlossen gilt die Aufgabe, wenn `vp run` die ausführbare Datei findet und beide Entwicklungsserver unter pnpm 12 startet.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
node.js, rust
Bereich
operating-systems, tooling
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Aktiv
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
68/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.