私は電子を初めて使いました。私は、グローバルにインストールされているffmpegとsoxを使用するアプリケーションを構築しています。これらの依存関係がユーザーのコンピュータにインストールされることを保証する方法を教えてください。電子はグローバルな依存関係をどのように扱うのですか?
2
A
答えて
0
それは電子に固有のものではなく、システムレベルの依存関係の2種類があるかもしれません http://12factor.net/dependencies
0
助けることができ、これを試してみてください:システムレベルでインストールされると予想
- NPMベースのパッケージ
- 非NPMパッケージ、システム・レベルのライブラリのように(あなたのケースのffmpegで) NPMベースのパッケージの場合
、いつものパターンは、アプリケーションの起動の流れの間にこれをチェックし、それが利用できない場合、ユーザーに通知することで、非NPMパッケージの場合
{
....
"peerDependencies": {
"chai": "1.x"
}
....
}
:次のようなピア依存性を行うことができます。
は、ffmpegの固有答える助けるべき次
/**
* Check for ffmpeg availability
*
* If the FFMPEG_PATH environment variable is set, try to use it.
* If it is unset or incorrect, try to find ffmpeg in the PATH instead.
*
* @method FfmpegCommand#_getFfmpegPath
* @param {Function} callback callback with signature (err, path)
* @private
*/
proto._getFfmpegPath = function(callback) {
if ('ffmpegPath' in cache) {
return callback(null, cache.ffmpegPath);
}
async.waterfall([
// Try FFMPEG_PATH
function(cb) {
if (process.env.FFMPEG_PATH) {
fs.exists(process.env.FFMPEG_PATH, function(exists) {
if (exists) {
cb(null, process.env.FFMPEG_PATH);
} else {
cb(null, '');
}
});
} else {
cb(null, '');
}
},
// Search in the PATH
function(ffmpeg, cb) {
if (ffmpeg.length) {
return cb(null, ffmpeg);
}
utils.which('ffmpeg', function(err, ffmpeg) {
cb(err, ffmpeg);
});
}
], function(err, ffmpeg) {
if (err) {
callback(err);
} else {
callback(null, cache.ffmpegPath = (ffmpeg || ''));
}
});
};
上記のコードはtaken from hereです。 node-fluent-ffmpegはffmpegの上で動作する素敵なプロジェクトです。私はあなたのプロジェクトの参考になると信じています。
0
あなたのアプリとの依存関係のために異なるインストーラをパッケージ化してから、依存関係インストーラを順番に起動するカスタムインストーラを作成するか、単に依存関係をインストールしてダウンロードページ。
インストーラの作成には多くのリソースがありますが、ご使用のプラットフォームに合わせてelectron installer
のGoogle検索を試してみてください。
0
申し訳ありません私はパーティーに遅れていますが、これがまだ関連している場合に備えて、私はこの目的のために特にffbinaries
モジュールを作成しました。
npmで確認することができます。アプリの起動中にユーザーのマシンにバイナリをダウンロードするだけで、プラットフォームが自動的に検出されます(一部のCIに含める予定がある場合でも上書きできます)ソート)。
関連する問題
- 1. Angular 2ではどのように解決可能な観測の依存関係を扱うのですか?
- 2. Gemfileでbundlerを使って異なるRDBMS依存関係をどのように扱うべきですか?
- 3. npmスクリプトはグローバルな依存関係よりもローカルの依存関係をどのように優先しますか?
- 4. gradleの依存関係の依存関係をどのように置き換えるのですか?
- 5. Mavenは親から継承した推移的な依存関係をどのように扱いますか?
- 6. クラスのLocalContainerEntityManagerFactoryBeanにはどのような依存関係が必要ですか?
- 7. マージモジュールの依存関係はどういう意味ですか?
- 8. テストモジュールとプロバイダ依存関係をどのようにするか?
- 9. 子は親よりもMavenで依存関係がどのように異なるのですか?
- 10. Cocoapod依存関係の扱い方は?
- 11. 適切な依存関係を扱うJavaビルダー
- 12. 依存関係注入のオーバーヘッドはどのような角度ですか?
- 13. 依存関係を扱い、アプリをプラグインできるようにする
- 14. npmに依存関係の最新の依存関係が得られないようにするには
- 15. 私のカスタムココアポッドへの依存関係はどうですか?
- 16. Xamarinラッパー地獄 - 多くの外部依存関係を扱う
- 17. PHP関数の依存関係はどのように機能しますか?
- 18. ルビーでクラスと依存関係を扱う方法
- 19. 継承に循環依存関係を扱う
- 20. プラグインの依存関係の扱い
- 21. どのようにSerilog Enricherに依存関係を渡すのですか?
- 22. Scalaでは依存関係はどのように機能しますか?
- 23. Angular JS - モジュールの依存関係はどうですか?
- 24. エンティティ間の依存関係を扱うAPIはありますか?
- 25. このようなモジュールは(Framework内の)依存関係なし
- 26. どのようにアンドロイドでEclipseの依存関係を追加するには?
- 27. どのように私はサーブレットの依存関係を使用しますか?
- 28. NetbeansプロジェクトでEclipseのような依存関係をエクスポートするにはどうすればいいですか?
- 29. OSGiビルドの依存関係をどのように管理できますか?
- 30. Firebase + OneSignalどのような依存関係が必要ですか?
クールですが、私が見てきたように、ffmpegがインストールされていないことをユーザーに通知するだけで、インストールされていなければインストールする方法はありますか? –
アプリケーションロジックをオーバーエンジニアリングすることで可能かもしれません。しかし、本当にそれをしたいですか?これらの依存関係をインストールするのはアプリケーションの責任ですか?通常、システムレベルの依存関係は、ユーザーに通知されます.ffmpegダウンロードページへのリンクを提供することができます。しかし、私はあなたのアプリケーションの範囲を知らないかもしれません。 –