Vite+ CLI cannot start in StackBlitz because its WASI binding is unavailable
Maintainer antworten meist innerhalb von 1 Tag
@wan9chi arbeitet bereits daran.
Seit 17.9.2026.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 48/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- node.js, rust, wasm
- Bereich
- build-system, cli, devtools
Rechercherichtung
Beginnen Sie mit packages/cli/binding/index.cjs bei den im Issue genannten WASI-Fallback- und Loader-Pfaden. Reproduzieren Sie das Problem mit dem StackBlitz-Projekt oder führen Sie NAPI_RS_FORCE_WASI=error ./node_modules/.bin/vp --version aus, um zu bestätigen, dass beide WASI-Optionen nicht verfügbar sind. Die Aufgabe ist erledigt, wenn eine kompatible WASI-Bindung verteilt wird und vp --version sowie vp env current im WebContainer funktionieren.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Describe the bug
The Vite+ CLI cannot start in a StackBlitz WebContainer.
A minimal project containing only [email protected] fails when it runs vp --version or vp env current. Both commands exit while loading vite-plus/binding/index.cjs, before Vite+ processes the command.
The platform-specific native binding cannot load in the WebContainer. The generated loader then checks for these WASI bindings:
./vite-plus.wasi.cjs@voidzero-dev/vite-plus-wasm32-wasi
Neither option is available:
- The published
[email protected]package contains no local WASI loader or.wasmartifact. - The npm registry returns 404 for
@voidzero-dev/vite-plus-wasm32-wasi.
Expected: Vite+ loads a compatible WASI binding and runs vp commands in the WebContainer.
Actual: Vite+ exits with Cannot find native binding.
The missing WASI distribution can also be reproduced deterministically on macOS:
NAPI_RS_FORCE_WASI=error ./node_modules/.bin/vp --version
That command reports both missing WASI options:
Error: WASI binding not found and NAPI_RS_FORCE_WASI is set to error
Cause 1:
Error: Cannot find module '@voidzero-dev/vite-plus-wasm32-wasi'
Cause 2:
Error: Cannot find module './vite-plus.wasi.cjs'
Normal macOS execution succeeds with the native binding. The forced command isolates the unavailable WASI distribution; it does not indicate a problem with the macOS native binding.
Source references
The current generated loader documents WASI as its fallback:
It first tries the bundled ./vite-plus.wasi.cjs loader and its .wasm artifacts:
It then tries @voidzero-dev/vite-plus-wasm32-wasi:
When WASI is required and neither option can load, it throws the forced-WASI error:
Related findings
- https://github.com/voidzero-dev/vite-plus/issues/2054 concerns circular binding resolution between
vite-plus-coreandvite-plus. This report concerns the unavailable WASI distribution for the Vite+ CLI itself. - https://github.com/voidzero-dev/vite-plus/pull/2067 proposed resolving Rolldown bindings through platform packages and explicitly left unsupported or fallback WASI bindings unchanged. The PR was closed without merging.
This prevents projects that use Vite+ commands from running in StackBlitz WebContainers. The reproduction contains no application code and fails with vp --version alone.
I am not currently planning a PR.
Reproduction
Steps to reproduce
- Open the StackBlitz reproduction.
- Wait for StackBlitz to install the dependencies.
- StackBlitz automatically runs
pnpm run reproduce, which invokesvp --version. - Observe that Vite+ exits while loading its native binding.
- Run
pnpm run environmentin the terminal. - Observe that
vp env currentfails during the same binding-loading step.
To isolate the unavailable WASI distribution on macOS:
- Clone https://github.com/ueberBrot/vite-plus-webcontainer-repro.
- Run
pnpm install. - Run
pnpm run reproduce:wasi. - Observe that Vite+ cannot find either
./vite-plus.wasi.cjsor@voidzero-dev/vite-plus-wasm32-wasi.
System Info
StackBlitz WebContainer
$ node --version
v22.22.3
$ pnpm --version
8.15.6
$ pnpm run environment
> [email protected] environment /home/ueberBrot/vite-plus-webcontainer-repro
> vp env current
ELIFECYCLE Command failed with exit code 1.
Error: Cannot find native binding. npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). Please try `npm i` again after removing both package-lock.json and node_modules directory.
at Object.eval (/home/ueberBrot/vite-plus-webcontainer-repro/node_modules/.pnpm/[email protected][email protected]/node_modules/vite-plus/binding/index.cjs:882:19)
at Module._compile (node:internal/modules/cjs/loader:160:19302)
at Module._extensions..js (node:internal/modules/cjs/loader:160:20043)
at Module.load (node:internal/modules/cjs/loader:160:17661)
at Module._load (node:internal/modules/cjs/loader:160:15179)
at wrapModuleLoad (node:internal/modules/cjs/loader:160:4199)
at loadCJSModuleWithModuleLoad (node:internal/modules/esm/translators:174:3866)
at _0x504db8.evaluationFunction (node:internal/modules/esm/translators:174:3603)
Node.js v22.22.3
$ pnpm run reproduce
> [email protected] reproduce /home/ueberBrot/vite-plus-webcontainer-repro
> vp --version
ELIFECYCLE Command failed with exit code 1.
Error: Cannot find native binding. npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). Please try `npm i` again after removing both package-lock.json and node_modules directory.
at Object.eval (/home/ueberBrot/vite-plus-webcontainer-repro/node_modules/.pnpm/[email protected][email protected]/node_modules/vite-plus/binding/index.cjs:882:19)
at Module._compile (node:internal/modules/cjs/loader:160:19302)
at Module._extensions..js (node:internal/modules/cjs/loader:160:20043)
at Module.load (node:internal/modules/cjs/loader:160:17661)
at Module._load (node:internal/modules/cjs/loader:160:15179)
at wrapModuleLoad (node:internal/modules/cjs/loader:160:4199)
at loadCJSModuleWithModuleLoad (node:internal/modules/esm/translators:174:3866)
at _0x504db8.evaluationFunction (node:internal/modules/esm/translators:174:3603)
Node.js v22.22.3
Used Package Manager
pnpm
Logs
Local diagnostic environment:
macOS 26.6.2
Architecture: arm64
Node.js v24.18.0
vite-plus v0.3.0
$ NAPI_RS_FORCE_WASI=error node -e 'try { require("./node_modules/vite-plus/binding/index.cjs") } catch (error) { let current = error; let index = 0; while (current) { console.error("Cause " + index + ":"); console.error(current.stack || String(current)); current = current.cause; index += 1; } process.exit(1); }'
Cause 0:
Error: WASI binding not found and NAPI_RS_FORCE_WASI is set to error
at Object.<anonymous> (/private/tmp/vite-plus-webcontainer-repro.9X28Wk/node_modules/.pnpm/[email protected][email protected]/node_modules/vite-plus/binding/index.cjs:870:19)
at Module._compile (node:internal/modules/cjs/loader:1871:14)
at Object..js (node:internal/modules/cjs/loader:2002:10)
at Module.load (node:internal/modules/cjs/loader:1594:32)
at Module._load (node:internal/modules/cjs/loader:1396:12)
at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
at Module.require (node:internal/modules/cjs/loader:1617:12)
at require (node:internal/modules/helpers:153:16)
at [eval]:1:7
at runScriptInThisContext (node:internal/vm:219:10)
Cause 1:
Error: Cannot find module '@voidzero-dev/vite-plus-wasm32-wasi'
Require stack:
- /private/tmp/vite-plus-webcontainer-repro.9X28Wk/node_modules/.pnpm/[email protected][email protected]/node_modules/vite-plus/binding/index.cjs
- /private/tmp/vite-plus-webcontainer-repro.9X28Wk/[eval]
at /private/tmp/vite-plus-webcontainer-repro.9X28Wk/node_modules/.pnpm/[email protected][email protected]/node_modules/vite-plus/binding/index.cjs:727:19
at Array.reduce (<anonymous>)
at createLoadErrorChain (/private/tmp/vite-plus-webcontainer-repro.9X28Wk/node_modules/.pnpm/[email protected][email protected]/node_modules/vite-plus/binding/index.cjs:720:17)
at Object.<anonymous> (/private/tmp/vite-plus-webcontainer-repro.9X28Wk/node_modules/.pnpm/[email protected][email protected]/node_modules/vite-plus/binding/index.cjs:875:19)
at Module._compile (node:internal/modules/cjs/loader:1871:14)
at Object..js (node:internal/modules/cjs/loader:2002:10)
at Module.load (node:internal/modules/cjs/loader:1594:32)
at Module._load (node:internal/modules/cjs/loader:1396:12)
at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
at Module.require (node:internal/modules/cjs/loader:1617:12)
Cause 2:
Error: Cannot find module './vite-plus.wasi.cjs'
Require stack:
- /private/tmp/vite-plus-webcontainer-repro.9X28Wk/node_modules/.pnpm/[email protected][email protected]/node_modules/vite-plus/binding/index.cjs
- /private/tmp/vite-plus-webcontainer-repro.9X28Wk/[eval]
at /private/tmp/vite-plus-webcontainer-repro.9X28Wk/node_modules/.pnpm/[email protected][email protected]/node_modules/vite-plus/binding/index.cjs:727:19
at Array.reduce (<anonymous>)
at createLoadErrorChain (/private/tmp/vite-plus-webcontainer-repro.9X28Wk/node_modules/.pnpm/[email protected][email protected]/node_modules/vite-plus/binding/index.cjs:720:17)
at Object.<anonymous> (/private/tmp/vite-plus-webcontainer-repro.9X28Wk/node_modules/.pnpm/[email protected][email protected]/node_modules/vite-plus/binding/index.cjs:875:19)
at Module._compile (node:internal/modules/cjs/loader:1871:14)
at Object..js (node:internal/modules/cjs/loader:2002:10)
at Module.load (node:internal/modules/cjs/loader:1594:32)
at Module._load (node:internal/modules/cjs/loader:1396:12)
at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
at Module.require (node:internal/modules/cjs/loader:1617:12)
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.
- Vorherrschende Sprache
- Rust
- Sterne
- 6.5k
- Forks
- 296
- Ø Merge
- 1 T. 5 Std.
- Gemergte PRs (30 T.)
- 224
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus voidzero-dev/vite-plus
-
pending triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 63/100
voidzero-dev/vite-plus#3235 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Docker guide: the runtime stage needs libatomic1 for Node.js 25 and laterEvtl. vergeben @kshanxs hat das vor 4 Tagen übernommen. Offendocumentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
voidzero-dev/vite-plus#3219 · 2 Kommentare · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
-
pending triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
voidzero-dev/vite-plus#2882 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 53/100
voidzero-dev/vite-plus#3254 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Operate environment tools only when global-cli is installed with managed mode enabled in `vite-plus` packageEvtl. vergeben @liangmiQwQ hat das vor 1 Tag übernommen. Offenbug enhancement
voidzero-dev/vite-plus#3252 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in voidzero-dev/vite-plus
Ähnliche Issues
-
desktop documentation
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
vfarcic/dot-agent-deck#2008 ·
Maintainer antworten meist innerhalb von 1 Tag
-
needs triage
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
pbakaus/impeccable#1210 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement ux-opportunities
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
area: ci priority: P4 ready-for-agent
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
shep-pm/shep#1249 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
`PartialEq` for `AssignedBigUint` treats different values as equalEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offenstatus:untriaged
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
midnightntwrk/midnight-zk#600 ·
Maintainer antworten meist innerhalb von 2 Tagen