Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Aperta
#2,598 2 commenti 1 reazione 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@wan9chi ci sta già lavorando.

Dal 17/9/2026.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
node.js, rust, wasm

Direzione di ricerca

Inizia da packages/cli/binding/index.cjs, nei percorsi di fallback WASI e del loader citati nell’issue. Riproduci il problema con il progetto StackBlitz oppure esegui NAPI_RS_FORCE_WASI=error ./node_modules/.bin/vp --version per confermare che entrambe le opzioni WASI non sono disponibili. Il lavoro è completato quando viene distribuito un binding WASI compatibile e vp --version e vp env current funzionano nel WebContainer.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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
Lingua principale
Rust
Stelle
6k
Fork
274
Merge medio
1g 12h
PR unite (30g)
198

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di voidzero-dev/vite-plus

Tutte le issue di voidzero-dev/vite-plus

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.