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

Parcel前端项目本地环境DuckDB-WASM初始化异常,生产环境运行正常的问题求助

Parcel前端项目本地环境DuckDB-WASM初始化异常,生产环境运行正常的问题求助

大家好,我现在碰到一个特别费解的问题:我正在开发一个用Parcel作为打包工具的前端项目,集成了DuckDB-WASM做数据处理,项目在生产环境运行完全正常,但在本地开发环境中,浏览器会抛出DuckDB初始化相关的错误(如果需要的话,我可以补充具体的错误提示和调用栈信息)。当前我的Node.js版本是22.18.0。

我怀疑问题出在src/duckdb.js文件里,以下是这个文件的完整代码:

/* global Worker */
import * as duckdb from "@duckdb/duckdb-wasm";
import duckdb_wasm from "url:@duckdb/duckdb-wasm/dist/duckdb-mvp.wasm";
import mvp_worker from "url:@duckdb/duckdb-wasm/dist/duckdb-browser-mvp.worker.js";
import duckdb_wasm_eh from "url:@duckdb/duckdb-wasm/dist/duckdb-eh.wasm";
import eh_worker from "url:@duckdb/duckdb-wasm/dist/duckdb-browser-eh.worker.js";

const MANUAL_BUNDLES = {
  mvp: {
    mainModule: duckdb_wasm,
    mainWorker: mvp_worker,
  },
  eh: {
    mainModule: duckdb_wasm_eh,
    mainWorker: eh_worker,
  },
};

let _db, _initialized = false;

async function init() {
  if (_initialized) return;
  _initialized = true;
  let db;
  try {
    // Select a bundle based on browser checks
    const bundle = await duckdb.selectBundle(MANUAL_BUNDLES);
    // Instantiate the asynchronus version of DuckDB-wasm
    const worker = new Worker(bundle.mainWorker);
    const logger = new duckdb.ConsoleLogger();
    db = new duckdb.AsyncDuckDB(logger, worker);
    await db.instantiate(bundle.mainModule, bundle.pthreadWorker);
    
    const conn = await db.connect();
    await conn.query("SELECT 1;");
    await conn.close();
  } catch (e) {
    console.log("Error instantiating duckdb");
    console.error("Error instantiating duckdb", e);
    return;
  }
  _db = db;
}

const getDB = async () => {
  await init();
  return _db;
};

export default { getDB, ...duckdb };

我已经尝试过用AI工具排查问题,但得到的结果都没切中要害,完全没解决我的问题。有没有朋友遇到过类似的情况?或者能帮我分析下本地环境和生产环境的差异可能导致这个问题的原因?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 08:18:07