cloudflare/vinext

Build failure: WASM `?module` import not supported by Rolldown

已關閉

#1,351 建立於 2026年5月20日

 (2 則留言) (0 個反應) (0 位負責人)TypeScript (385 個分叉)github user discovery
adapter-api-e2ehelp wanted

倉庫指標

星標
 (8,633 顆星)
PR 合併指標
 (平均合併 1天 1小時) (30 天內合併 462 個 PR)

描述

This issue was created by an agent analysing CI failures from the Next.js Deploy Suite (vinext main vs Next.js v16.2.6, 2026-05-20).

Problem

Rolldown cannot handle .wasm?module imports. This is a Cloudflare Workers-specific import convention (?module suffix tells the runtime to instantiate the WASM module). Neither Rolldown nor Vite have built-in support for this pattern.

Build failed with 1 error:
[UNLOADABLE_DEPENDENCY] Could not load src/add.wasm?module
   ╭─[ src/add.js:1:18 ]
 1 │ import wasm from "./add.wasm?module";

Next.js handles this through Webpack's experimental WASM support.

Estimated Impact

~4 test failures (build failure in all 3 Vite environments: RSC, client, SSR).

Affected Test Suites

  • test/e2e/edge-can-use-wasm-files/index.test.ts

Recommendation

  1. Reproduce first in vinext's own test suite. Add a test that imports a .wasm?module file and verify the build fails.

  2. Implement a Vite plugin for WASM module imports. Create a plugin that intercepts .wasm?module imports and handles them appropriately for the target environment. For Cloudflare Workers, the ?module import should be preserved in the output. For Node.js, it should use WebAssembly.compile() with a file read.

  3. Note: This may require upstream Rolldown support. Check if there is an existing Rolldown issue or plugin for WASM imports.

貢獻者指南