https://github.com/mapbox/tilemill
tilemill がノード アプリケーションを Mac、Linux、または Windows 用のデスクトップ アプリケーションにパッケージ化する方法を理解しようとしています。私は彼らのgithubプロジェクトを検索しましたが、彼らがこれをどのように行ったかについての詳細を示すものは何も見当たりません.
https://github.com/mapbox/tilemill
tilemill がノード アプリケーションを Mac、Linux、または Windows 用のデスクトップ アプリケーションにパッケージ化する方法を理解しようとしています。私は彼らのgithubプロジェクトを検索しましたが、彼らがこれをどのように行ったかについての詳細を示すものは何も見当たりません.
彼らは、含まれているnodejsとlibsを使用してポート20008と20009でミニサーバーを起動し、それをWebビューで開きます。各ターゲット プラットフォームには、ノード プロセスを制御する基本的なラッパーがあり、localhost:20009 を指す Web ビューを開きます。
たとえば、Mac では、すべて (nodejs & ライブラリ & アセット) が TileMill.app/Resources/ に含まれており、TileMill.app/MacOS/ の下には、ノード + index.js (Resources/ 内) をロードして webview を開く TileMill があります。
同様のことを達成するためのより簡単なクロスプラットフォームの方法は、node-webkitを使用することです。展開が簡単になるだけでなく、多数の Web コールバックを使用する代わりに、Web レイヤー内で直接 nodejs を呼び出すことができます。これは、ファイルに直接アクセスするなどのことを行うことができ、クライアント/サーバーを分離しておく必要がないことを意味します。
パッケージ化されたアプリにすぎません。依存関係package.json
は、配布とインストールで使用
される nsis インストーラーで見つけることができます。これは、node.exe
多くの依存関係 (1 つの .exe) がないためです。そのため、インストール時に .exe からローカル ディレクトリに展開し、アプリケーションを配信するだけです。ローカル ディレクトリを調べるとnode_modules
、すべてのモジュールがプリインストールされているフォルダも見つかります。
Tilemill は固定バージョンを使用するため、ローカルの node.js が更新されても壊れませんnode.exe
。