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对应目录:
- 查看
node_modules/stt/lib/binding/v1.4.0/linux-x64/路径下的现有文件夹,比如node-vXX-linux-x64(XX为Node.js版本号) - 若
electron-v17.4目录不存在,先创建该目录 - 将
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
相关产品推荐
相关产品推荐

