Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Vite+ CLI cannot start in StackBlitz because its WASI binding is unavailable

Offen
#2,598 2 Kommentare 1 Reaktion 1 zugewiesene Person Auf GitHub ansehen

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

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

pending triage to be discussed
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 .wasm artifact.
  • 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:

https://github.com/voidzero-dev/vite-plus/blob/d3bc20a531fc909b0389e09b006b6e8e99944fc2/packages/cli/binding/index.cjs#L733-L742

It first tries the bundled ./vite-plus.wasi.cjs loader and its .wasm artifacts:

https://github.com/voidzero-dev/vite-plus/blob/d3bc20a531fc909b0389e09b006b6e8e99944fc2/packages/cli/binding/index.cjs#L807-L829

It then tries @voidzero-dev/vite-plus-wasm32-wasi:

https://github.com/voidzero-dev/vite-plus/blob/d3bc20a531fc909b0389e09b006b6e8e99944fc2/packages/cli/binding/index.cjs#L830-L865

When WASI is required and neither option can load, it throws the forced-WASI error:

https://github.com/voidzero-dev/vite-plus/blob/d3bc20a531fc909b0389e09b006b6e8e99944fc2/packages/cli/binding/index.cjs#L869-L876

Related findings

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

https://stackblitz.com/~/github.com/ueberBrot/vite-plus-webcontainer-repro?file=package.json&terminal=dev

Steps to reproduce
  1. Open the StackBlitz reproduction.
  2. Wait for StackBlitz to install the dependencies.
  3. StackBlitz automatically runs pnpm run reproduce, which invokes vp --version.
  4. Observe that Vite+ exits while loading its native binding.
  5. Run pnpm run environment in the terminal.
  6. Observe that vp env current fails during the same binding-loading step.

To isolate the unavailable WASI distribution on macOS:

  1. Clone https://github.com/ueberBrot/vite-plus-webcontainer-repro.
  2. Run pnpm install.
  3. Run pnpm run reproduce:wasi.
  4. Observe that Vite+ cannot find either ./vite-plus.wasi.cjs or @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
Vorherrschende Sprache
Rust
Sterne
6.5k
Forks
296
Ø Merge
1 T. 5 Std.
Gemergte PRs (30 T.)
224

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus voidzero-dev/vite-plus

Alle Issues in voidzero-dev/vite-plus

Ähnliche Issues

Weitere Issues zu Rust

Neue Issues direkt in Ihr Postfach

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