electron-webpack
ボイラープレートから電子アプリケーションを構築しています。電子アプリケーションでffmpegをバンドルする方法
このノードモジュール@ffmpeg-installer/ffmpeg
は互換性のあるプリコンパイルされたバイナリを/node_modules
ディレクトリにインストールし、その実行可能ファイルのパスを介してアクセスできるようにしました。
const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path
これは、開発中に正常に動作しますが、私は配布を構築し、それを実行すると、そのパスに子プロセスを生成しようとしたとき、私はエラーを取得します。おそらく、パスはバイナリを指していないからです。
配布可能ファイルを実行しているときのパスは、次のように設定されています。 AppName.app
パッケージの内容で見たときに
/Users/me/project/dist/mac/AppName.app/Contents/Resources/app.asar/node_modules/@ffmpeg-installer/darwin-x64/ffmpeg
はしかし、私は次のパスにバイナリを見つけます。
/Users/me/project/dist/mac/AppName.app/Contents/Resources/app.asar.unpacked/node_modules/@ffmpeg-installer/darwin-x64/ffmpeg
どのように私はelectron-webpack
とelectron-builder
を用いた電子アプリケーションにバイナリの依存関係を含める必要がありますか?
これは機能しますが、ASARが機能しなかった理由を知りたいと思います。それはデフォルトの 'asarUnpack'オプションのためですか? –
'as asarアーカイブを使用したパッケージングは無効です。これは強くお勧めしません。 asarを有効にして、asarUnpackを使用して、外部から利用できるファイルを解凍してください。 ' –
@JoshuaBarnettこれは私がこれに遭遇してからしばらくお待ちです - asarUnpack'/'smartUnpack'オプションが新しくなったようです。あなたがそれを動作させることができるなら、これはより良い選択肢のように思えます - 私は自分自身を 'asar:false'を使うことには消極的でした。 –