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

Tauri项目导入surrealdb.wasm时Vite编译报错求助

Tauri+Vite项目中surrealdb.wasm的坑解决指南

第一个坑:顶层await导致编译失败

导入surrealdb.wasm时直接报:

Error: Build failed with 6 errors:
node_modules/surrealdb.wasm/dist/full/index.js:8:13: ERROR: Top-level await is not available in the configured target environment ("chrome87", "edge88", "es2020", "firefox78", "safari14" + 2 overrides)

解决办法:

只改build.target和esbuild.target为esnext没用,得在Vite配置里同时开顶层await支持,还要覆盖优化依赖的esbuild配置:

export default defineConfig({
  build: {
    target: 'esnext',
  },
  optimizeDeps: {
    esbuildOptions: {
      target: 'esnext',
      supported: {
        'top-level-await': true
      }
    }
  },
  // 保留你原来的Tauri配置
  tauri: {
    // ...你的现有配置
  }
})

第二个坑:加了top-level-await插件后找不到Wasm文件

装了插件后反而报:

Error: Not found: /node_modules/.vite/deps/index_bg.wasmat resolve (C:/my/directory/project_name/node_modules/@sveltejs/kit/src/runtime/server/respond.js:480:13)

解决办法:

直接把这个插件删掉!它会搞乱surrealdb.wasm的Wasm文件路径映射。另外还要让Vite别优化这个包,在配置里加排除:

export default defineConfig({
  optimizeDeps: {
    exclude: ['surrealdb.wasm'],
    esbuildOptions: {
      target: 'esnext',
      supported: {
        'top-level-await': true
      }
    }
  },
  // 其他配置不变
})

最后补几个验证步骤

  1. 删了node_modules/.vite缓存目录,重启开发服务器,避免缓存搞事。
  2. 如果导入还是有问题,直接写完整路径:import { Surreal } from 'surrealdb.wasm/dist/full/index.js'。
  3. 检查Tauri权限:tauri.conf.json里要开网络权限(连远程DB的话)或者本地文件权限(本地存储的话):
{
  "tauri": {
    "allowlist": {
      "network": {
        "all": true, // 按需限制,别全开也行
        "request": true
      }
    }
  }
}

内容的提问来源于stack exchange,提问作者Ólavur Nón

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 13:35:24