nw.js バイナリをサブフォルダー内のアプリケーションと共有する: 効率的な配布のためのガイド
P粉465287592
P粉465287592 2024-01-17 08:58:39
0
1
555

そこで、次の問題が発生しました。私のプロジェクト (このプロジェクト) は、web2exe を使用してバンドルされた 2 つの異なる nw.js アプリケーションに依存しています。 1 つはセットアップ用で、もう 1 つは GUI がなく、起動時にバックグラウンドで実行されます。 2 番目のアプリケーションも、nw を利用して、トレイ アイコンの表示やウィンドウの非表示などの操作を実装します。これらの操作を実行しない場合は、バッチ ファイルやシェル スクリプトなどのプラットフォーム固有のスクリプトが必要になります。 この解決策は正常に機能しますが、システムはツリー内の通常のファイルにアクセスする必要があるため、実行可能ファイルを圧縮できません。たとえそれができたとしても、最大のファイルは dll ファイルとロケール ファイルです。 2 つの個別の非圧縮 Web アプリケーションを追加のノード モジュールとバンドルすると、ファイル サイズは約 800 MB になりますが、これはアプリケーションで達成したいこととしてはまったく非現実的です。

Neutralinojs などの別のフレームワークの使用を検討していますが、コードを書き直す必要があり、その過程でいくつかの新しい特定の機能が失われることになります。私は 2 つのアプリケーション間で新しいファイルを共有することに興味があります。 2 番目のフォルダーは、最初のフォルダーのサブフォルダーにあります。ほとんどの nw ファイル (実行可能ファイル自体を除く) は、ルート nw ディレクトリ内のファイルと同一です。特に、nw.dll フォルダーと locales フォルダーを共有することで、サイズが約 200 MB 削減されました。

これを行う方法を探していますが、今のところ良い方法が見つかりません。もしかしたら、私が見逃している解決策がここにあるかもしれません。 私が想像できるもう 1 つの解決策は、より小さなサブセットを使用するか、ネイティブ Webview を使用して nw を再実装することです。もしかしたら似たようなものがあるのか​​もしれないが、まだ見つかっていない。

P粉465287592
P粉465287592

全員に返信(1)
P粉163951336

最も簡単な解決策は、これらを 1 つのアプリケーションに単純に結合することです。

  1. package.json 内の FelizJueves の main を HTML ファイルではなく JS ファイルに変更します。
  2. JS スクリプトをバックグラウンド プロセスにします。ウィンドウを開けずに、FelizCheck で現在行っていることをそのまま行ってください。
  3. この JS スクリプトでは、
  4. open イベントをリッスンします: https://nwjs.readthedocs.io/en/latest/References/App/#event-openargs
  5. ##open
  6. イベント ハンドラーで、nw.Window.open() を使用してウィンドウ (FelizJueves.html) を表示します。このイベントは、誰かがすでに実行中のアプリケーションを起動しようとすると発生します。したがって、最初の起動ではバックグラウンド チェッカーが開始されるだけです。 2 回目に起動すると、UI ウィンドウがポップアップ表示されます。
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート