You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows运行Wasmer JS示例无法解析@wasmer/wasi绑定模块如何解决?

Windows下构建Wasmer JS hello-world示例报依赖解析错误修复方案

问题表现

在Windows系统运行JavaScript编写的Wasmer hello-world程序(Wasmer是一款服务端执行WebAssembly的开源运行时)时,Parcel构建阶段直接失败,服务无法正常提供访问。
完整报错输出:

Server running at http://localhost:1234
× Build failed.

@parcel/core: Failed to resolve '@wasmer/wasi/lib/bindings/browser' from './index.js'

  C:\Users\msi\docs.wasmer.io\integrations\js\wasi\browser\examples\hello-world\index.js:2:29
    1 | import { WASI } from '@wasmer/wasi/lib'
  > 2 | import browserBindings from '@wasmer/wasi/lib/bindings/browser'
  >   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    3 | import { WasmFs } from '@wasmer/wasmfs'
    4 |

报错核心是@parcel/core无法从入口文件index.js解析到@wasmer/wasi/lib/bindings/browser依赖,问题定位在index.js第2行的导入语句,直接中断构建流程。

故障原因

  • Windows环境下Parcel处理无后缀模块导入的逻辑和类Unix系统存在差异,不会自动补全.js后缀
  • 部分发布版本的@wasmer/wasinpm包未做好导出路径适配,示例里硬编码的无后缀导入路径匹配不到包内实际文件
  • 安装依赖时未锁定版本,拉取的高版本@wasmer相关包目录结构和示例编写时的结构不一致,路径直接失效

修复操作

  • 首先修改index.js第2行的导入语句,补全.js后缀:
import browserBindings from '@wasmer/wasi/lib/bindings/browser.js'

保存后重新执行构建命令,验证是否恢复正常。

  • 如果补全后缀仍报找不到文件,直接打开项目下node_modules/@wasmer/wasi/lib/bindings/目录,查看目录内实际存在的浏览器端绑定文件名,把导入路径替换成实际存在的文件名即可。不少版本的包把这个文件命名为browser.bundled.js,对应把导入路径改成@wasmer/wasi/lib/bindings/browser.bundled.js就能解决。
  • 上述操作都无效的话,就是安装的@wasmer包版本和示例代码不匹配,执行以下命令安装兼容的固定版本:
npm uninstall @wasmer/wasi @wasmer/wasmfs
npm install @wasmer/wasi@0.12.0 @wasmer/wasmfs@0.12.0

装完后清空Parcel缓存,重新启动构建服务即可正常运行。


内容的提问来源于stack exchange,提问作者Ajit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 13:48:13