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

stt.node与Electron版本不兼容问题求助

问题描述

删除node_modules并重新执行npm i拉取依赖后,Electron应用启动时出现模块缺失错误,具体提示找不到Coqui STT的native模块文件:

App threw an error during load
node_modules/electron/dist/resources/default_app.asar/main.js:113
Error: Cannot find module '/home/korodarn/projects/mygit/sight-words-solid-electron/node_modules/stt/lib/binding/v1.4.0/linux-x64/electron-v17.4/stt.node'
Require stack:
- /home/korodarn/projects/mygit/sight-words-solid-electron/node_modules/stt/index.js
- /home/korodarn/projects/mygit/sight-words-solid-electron/dist/main/index.cjs
- /home/korodarn/projects/mygit/sight-words-solid-electron/node_modules/electron/dist/resources/default_app.asar/main.js
- 
    at Module._resolveFilename (node:internal/modules/cjs/loader:940:15)
    at Function.n._resolveFilename (node:electron/js2c/browser_init:249:1105)
    at Module._load (node:internal/modules/cjs/loader:785:27)
    at Function.c._load (node:electron/js2c/asar_bundle:5:13343)
    at Module.require (node:internal/modules/cjs/loader:1012:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/home/korodarn/projects/mygit/sight-words-solid-electron/node_modules/stt/index.js:24:17)
    at Module._compile (node:internal/modules/cjs/loader:1116:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1169:10)
    at Module.load (node:internal/modules/cjs/loader:988:32)

已尝试执行node_modules/.bin/electron-rebuild,命令执行成功但仅重建了canvas依赖,问题未得到解决。

解决方案

1. 强制针对STT模块执行Electron重建

electron-rebuild可能未自动识别STT模块的重建需求,手动指定模块和Electron版本执行:

npx electron-rebuild -f -w stt --electron-version=17.4.0

参数说明:

  • -f:强制覆盖现有编译文件
  • -w:指定需要重建的目标模块(此处为stt)
  • --electron-version:匹配你的Electron版本号(根据报错信息填写17.4.0)

2. 手动触发STT模块的编译脚本

部分native模块的默认安装脚本仅针对Node.js环境编译,不会适配Electron。进入STT模块目录手动执行安装编译:

cd node_modules/stt
npm run install

完成后回到项目根目录,再次运行electron-rebuild。

3. 手动复制编译好的native文件(临时 workaround)

如果上述方法无效,可手动将Node.js版本的编译文件复制到Electron对应目录:

  1. 查看node_modules/stt/lib/binding/v1.4.0/linux-x64/路径下的现有文件夹,比如node-vXX-linux-x64(XX为Node.js版本号)
  2. 若electron-v17.4目录不存在,先创建该目录
  3. 将node-vXX-linux-x64下的stt.node文件复制到electron-v17.4目录中

4. 检查npm脚本执行权限

确认npm未禁用脚本执行,若之前设置过ignore-scripts为true,先恢复:

npm config set ignore-scripts false

随后重新执行npm i,再运行electron-rebuild。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 22:50:22