electron では、ノード モジュールvosk
は にあるいくつかの共有オブジェクトにアクセスする必要がありますnode_modules/vosk/lib/
。
私が今抱えている問題は、require('vosk')
自分main.js
の AppImage ファイルを実行しようとすると、次のようになることです。
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Dynamic Linking Error: /tmp/.mount_CantooClaxGf/resources/app.asar/node_modules/vosk/lib/linux-x86_64/libvosk.so: Cannot open the shared object: It's not a folder
at new DynamicLibrary (/tmp/.mount_CantooClaxGf/resources/app.asar/node_modules/ffi-napi/lib/dynamic_library.js:75:11)
at Object.Library (/tmp/.mount_CantooClaxGf/resources/app.asar/node_modules/ffi-napi/lib/library.js:47:10)
at Object.<anonymous> (/tmp/.mount_CantooClaxGf/resources/app.asar/node_modules/vosk/index.js:24:21)
at Module._compile (internal/modules/cjs/loader.js:1145:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1166:10)
at Module.load (internal/modules/cjs/loader.js:981:32)
at Module._load (internal/modules/cjs/loader.js:881:14)
at Function.Module._load (electron/js2c/asar.js:769:28)
at Module.require (internal/modules/cjs/loader.js:1023:19)
at require (internal/modules/cjs/helpers.js:77:18)
ビルドのファイルに vosk を追加しようとしました:
"build": {
"files": [
"dist/**/*",
"src/assets/icons/*",
"electron.js",
"package.json",
"assets/models/*",
"node_modules/vosk/lib/*"
],
フォルダー内のファイルが表示されるようになりましたapp.asar.unpacked/node_modules/vosk/lib/
が、アプリを実行すると、まだ同じエラーが発生します。
ハックに言及しているこの回答を見つけましたが、問題は解決せず、まったく同じエラーが引き続き発生します。
共有オブジェクトを見つけられるようにパッケージ化するにはどうすればよいですvosk
か?