node.jsWebアプリを通常のデスクトップアプリとしてパッケージ化する[クローズ]


86

少し検索しましたが、このための既存のツールが見つかりません。

私はあなた自身のコンピューター上で実行するように設計されたnode.jsウェブサーバーを持っています。MySnazzyThing.appnodejsとnpmをインストールnode mysnazzyapp.jsしてコマンドラインで実行する代わりに、ダブルクリックできればかなり素晴らしいでしょう。

.app実行可能ファイルは、ノードサーバをスプールし、通常のだろうかを示すだろう、単純なネイティブのWebKitのウィンドウ開くだろうlocalhost:3000、私はコマンドラインで実行している場合を。

このネイティブアプリは、たとえば、Mac AppStoreを通じて配布できます。そしてbam、node.jsデスクトップアプリ。

そのようなツールはありますか?それとも、私が想像しているようにこれが機能しないという技術的な理由はありますか?

回答:



90

オプション1:電子(別名原子殻)

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


オプション2:NW.js(以前はnode-webkit)

要点は、基本的にJSエンジンを拡張して、ノードの拡張オブジェクトモデルとモジュールをサポートするWebベースのアプリを作成することです...次に、package.json start.htmlモジュールとjsファイルをzipにパッケージ化します( .nw拡張子)そしてnw(.exe)で実行します..利用可能なWindows、Mac、Linuxビルドがあります。


オプション3:ノードのCarlo chrom(ium)シェル。

これにより、ローカルにインストールされたChromeを、ローカルで実行されているサーバーアプリケーションに接続できるシェルとして起動できるようになります。それはローカルクロームを必要としますが、求められたものに非常に近いです。


オプション4:MacGapNode(OSXのみ)

MacGapとノード統合(古くなっているようです)


余談:サービス...

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

特にOSXに対する質問ですが、WindowsではNSSMを使用してサービスとして何でも実行でき、WindowsのNodeJSベースのサービスに使用しました。ただし、ニーズに応じて、上記の他のオプションのいくつかが優れていると思います。


削除:


この回答は複数の質問のためにコピーされています。これらの参照は主に便宜上更新するためのものです。


OSXおよびLinuxの場合、github.com / crcn / nexeもソリューションのように見えます。
robocat 2013年

これらの中でnode-webkitが勝者のようです。大規模な開発者ベース、優れたドキュメント、Intelの支援。
ダン

gerty、ありがとう... nexeを含めるように回答を更新し、node-webkitをトップスポットにしました... appjsが少し古くなっているようです。
トラッカー1 2013年

OSXチェックアウトMacgapの場合、アプリストアに送信できます。ノードwebkitは、将来的に古くなった可能性のあるAPIを使用したために拒否されます。
Michael J. Calkins

うーん、今アイデアがあります。アプリをサーバーとしてバックグラウンドで実行し、そのブラウザウィンドウを開くだけです(たとえば、ウィンドウフレームやタブ/アドレスバーのないブラウザを起動するにはどうすればよいですか)。その方法ではウィンドウをあまり制御できません(たとえば、ブラウザがファイル、編集、表示などのメニュー項目を処理し、ユーザーは引き続きブラウザの印刷、ズーム、ページはめ込みなどにアクセスできます)。検索機能)ですが、基本的に追加のフレームワークは必要ありません。
ajedi32 2015

8

Topcubeを調べることをお勧めします。その目標は、「ノード開発者に、GUIプラットフォームとしてHTML5 + CSS3を使用してノードサーバーにデスクトップGUIを提供する方法を提供すること」です。githubのTopcube


1
Topcubeははるかに長く、サポートされていないようだ
Shamoon

はい、チタンを調べることをお勧めします。これはNode.jsではありませんが、PCおよびモバイルアプリケーション開発用のJSベースのクロスプラットフォームです。appcelerator.com/products/…–
Brian Heese

そのチタンリンクは腐っています。これがあなたが言及しているものだと思います:docs.appcelerator.com/titanium/2.0/index.html彼らの不透明なマーケティングが多いウェブサイトは確かに彼らの製品が何であるかを見たり気にかけたりするのを難しくします。
Grumdrig 2012

注:Titaniumデスクトップパーツは、開発/サポートされなくなります。
Sri Kadimisetty 2012年

1
Titanium Desktopの開発は、新しい開発者グループに引き継がれました:tidesdk.org
Motin

-1

現在、これを達成する方法はたくさんあります。

ノード+ html5アプリのパッケージ化の分野で明らかに勝者は、現在Electronです(Atom、VSCode、Slack、Discordなどで使用されています)。

アプリとしてパッケージ化された他の言語を使用して(それらの言語/スタック用のツールを使用)、ノードのインストールを確認し、ノードで「サーバー」スクリプトを起動してから、デフォルトのブラウザー(または一部のWebビューコンポーネント)を起動することもできます。他の手段)、最後に場所をノードサービスに設定します。これは非常に軽量で効率的な方法ですが、ElectronのようなソリューションほどOSと統合されていません。

ここでのElectronの主な競合相手は、NW.jsです。私の知る限り、Electronには(まだ)ないNW.jsの主な機能は、コンパイル/難読化です。Electronは自動更新を簡単にします。

https://electron.atom.io/ https://nwjs.io/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.