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

electron-builder打包Electron应用后无法找到@lancedb/vectordb-darwin-arm64模块

解决Electron打包时vectordb依赖缺失问题

针对你基于react-electron-boilerplate的双package.json结构,以及vectordb依赖@lancedb/vectordb-darwin-arm64打包后缺失的问题,试试以下方案:

  • 确保依赖架构匹配并正确安装
    因为你用的是darwin-arm64架构,避免用Rosetta转译的终端安装依赖,否则可能装成x64版本。在项目根目录执行:

    rm -rf release/app/node_modules
    cd release/app
    arch -arm64 npm install vectordb @lancedb/vectordb-darwin-arm64
    

    安装完成后,用file命令验证二进制文件架构:

    file node_modules/@lancedb/vectordb-darwin-arm64/vectordb.node
    

    输出需包含arm64字样,确认是对应架构的文件。

  • 精确配置electron-builder的asarUnpack规则
    原有的通配符可能未精准匹配到目标模块,修改build配置(根目录的package.json或electron-builder.yml):

    "build": {
      "asar": true,
      "asarUnpack": [
        "node_modules/@lancedb/vectordb-darwin-arm64/**/*",
        "node_modules/vectordb/**/*"
      ],
      "files": [
        "release/app/dist/**/*",
        "release/app/node_modules/**/*",
        "release/app/package.json"
      ]
    }
    

    确保files字段包含了node_modules目录,避免打包时遗漏依赖。

  • 手动指定二进制文件路径,禁用自动安装
    vectordb运行时自动下载二进制的机制在打包后的环境中可能失效,在Electron主进程中手动指定已打包的二进制路径:

    const { VectorDB } = require('vectordb');
    const path = require('path');
    
    async function initDB() {
      // 获取asar unpack后的资源路径
      const binaryPath = path.join(
        process.resourcesPath,
        'app.asar.unpacked',
        'node_modules',
        '@lancedb',
        'vectordb-darwin-arm64',
        'vectordb.node'
      );
      const db = await VectorDB.connect('./path/to/db', {
        binary: binaryPath
      });
      return db;
    }
    

    若需在渲染进程中使用,通过IPC从主进程获取路径,避免直接在渲染进程中访问文件系统。

  • 清理缓存重新打包
    打包前清理缓存,避免旧依赖干扰:

    rm -rf release/dist
    rm -rf node_modules/.cache
    npm run build
    
  • 临时关闭asar验证问题
    若上述方案无效,临时将asar设置为false打包测试:

    "build": {
      "asar": false
    }
    

    如果打包后能正常运行,说明问题确实出在asar的unpack规则上,再重新调整asarUnpack的路径配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 02:23:28