2012-06-12 8 views
15

開発者が開発環境を管理するために使用する一連のターミナルコマンドのインターフェイスを構築したいと考えています。 node.jsにビルドしようと思いますNode.jsアプリケーションをosxアプリケーションとしてパッケージ化

今、私はexpressなどを使ってHTML5/CSS3/JSアプリケーションとして作成できると思っています。それをネイティブosxアプリケーションとしてパッケージ化したいと考えています。つまり、私はちょうどそれらを送ることができるアプリで、ダブルクリックして実行しますが、Chromeブラウザを起動してスクリプトを起動するlocalhost:portサーバーに移動するか、単にサーバーを起動してユーザーにURLに行くように指示します。どちらの方法でも問題ありません。

私は、ローカルシステムにアクセスする必要があるため、いくつかの設定を行い、実行中の任意の数のヘッドレスVMと対話できるため、この作業を行っています。だから私は単にサーバーからこれを提供し、サイトを訪問させることはできません。

アイデア?あなたはlibフォルダをバイナリに含まれるノードからのソースからのすべてのJavaScriptファイルをnode.jsをコンパイルする場合

は、

ルイス

+0

これは実際に.appパッケージでなければなりませんか?そうでない場合は、起動するすべてのものを実行するシェルスクリプトを作成し、そのMyApp.commandを呼び出して、ノードのローカルビルドとzipファイルまたはdmgなどの中のソースと一緒にパッケージ化する方が簡単かもしれません。 .appにする必要がある場合は、JSスクリプトを直接起動するだけの簡単な解決策があるので、jsコードを書いてユーザーのブラウザを起動する必要があります。 .appにする必要があり、JSを変更できない場合は、カスタム.appラッパーを作成する必要があります。だから、あなたは何をしたいですか? – abarnert

+1

PSでは、py2appなどと同等のnode.jsはありません。これは、中間ソリューションを本当に簡単にします。私が理解しているところから、現時点では最も有望なオプションはhttp://appjs.org/ですが、現在のリリースはMacでは動作しません...だから、もしあなたがいても、まだ十分な仕事をしなければならないでしょう理論的には「簡単」な方法で。 – abarnert

+0

PPSの場合は、https://groups.google.com/group/nodejs/browse_thread/thread/f90b3f1c747d20b3も参照してください(これは、WebKitのGUIをアプリに組み込むことについての、ユーザーのデフォルトブラウザの起動ではありません)。 – abarnert

答えて

2

、ありがとうございました。同じ方法でコードをバイナリにパックすることができます。

Mac OSXパッケージの作成方法はあまりお粗末ではありませんが、最終的にはvery hardではありません。カスタムノードバイナリを1つにまとめるだけです。

3

AppJSをチェックアウト:http://appjs.com/ - "HTML、CSSとJavaScriptを使用してLinux、WindowsとMac用デスクトップアプリケーションの構築"

は良い試合のようですね:)

+3

https://twitter.com/appjs/status/394911856910823424 - appjsはhttps://github.com/rogerwang/node-webkitに置き換えられました –

7

オプション1:electron(別名アトムシェル)

githubのAtomエディタが使用するシェルです。これはnode-webkitと非常によく似ていますが、スクリプトを最初に実行するため、ユーザー用のビュー/ウィンドウを作成する必要があります。他にも若干の違いがありますが、それを見てみる価値はあります。


オプション2:NW.js以前はノードのWebKit

要旨は、それは基本的にあなたがノードの拡張オブジェクトモデル、およびモジュールをサポートするWebベースのアプリケーションを記述するためのJSエンジンを拡張するということですが...あなたはpackage.jsonのstart.htmlモジュールとjsファイルをzip(拡張子.nw)にパッケージし、nw(.exe)で実行します。Windows、mac、linuxのビルドがあります。


オプション3:ThrustNode Adapter

これは本当に起動アプリケーションにIPCチャネルでのWebKit /クローム周り結合失うです。メッセージチャンネルを使用することもできますし、アプリケーションをノードのより伝統的なサーバーサイドアプリケーションとして記述して、ウィンドウの起動を制御することもできます。どちらがスイートでも良いですか?

推力には複数の言語のバインディングがあります。私はMacGapNodeより先にこれを置くのは、まずクロスプラットフォームのオプションを優先しているからです。


オプション4:MacGapNode(のみOSX)ノードの統合と

MacGap(古くなってことを思え)

別に

:サービス...

私は」することができますこれを.AppとしてOSXを話すことはできますが、NodeJSにバックグラウンドサービスをインストールし、デスクトップ上に「ローカル」サイトへのリンクを作成することは可能でしょう。ほとんどのブラウザには、すべての機能を表示しないオプションがあります(特にFirefoxが知っていることを知っています)。

あなたの質問は特にOSXですが、WindowsではNSSMを使ってサービスとして何かを実行でき、WindowsのNodeJSベースのサービスに使用しました。私は上記の他のオプションのいくつかはあなたのニーズによりますが、より良いと思います。


は削除:

  • nexe - 古い/メンテナンスされていない
  • AppJS - 古い、ウェブサイトをオフライン
  • から
  • DeskShell DeskShellに置き換えます -NW.jsに訂正
  • XULRunner プロジェクトが停止しており、非常に遅れています。

この答えは、複数の質問のためにコピーされ、これらの参照は、利便性を更新するために、ほとんどです。

関連する問題