Bir node.js web uygulamasını normal bir masaüstü uygulaması olarak paketleme [kapalı]


86

Biraz araştırdım ancak bunun için mevcut bir araç bulamıyorum.

Sizin için bazı şık şeyler yapan kendi bilgisayarınızda çalışmak üzere tasarlanmış bir node.js web sunucum var. Nodejs MySnazzyThing.appyüklemek yerine çift ​​tıklayıp npm'yi çalıştırsaydım çok güzel olurdunode mysnazzyapp.js komut satırında .

.appYürütülebilir düğümü sunucuyu spool up ve her zamanki gibi ne olacağını gösterir basit bir yerli webkit penceresini açacaklocalhost:3000 Ben komut satırında çalışıyormuş.

Bu yerel uygulama, daha sonra, örneğin, mac uygulama mağazası aracılığıyla dağıtılabilir. Ve bir node.js masaüstü uygulaması olan bam.

Böyle bir araç var mı? Yoksa bunun hayal ettiğim gibi çalışmaması için herhangi bir teknik sebep var mı?

Yanıtlar:



91

Seçenek 1: elektron (aka atom kabuğu)

Bu, github'ın Atom düzenleyicisinin kullandığı kabuktur. Düğüm-webkit'e çok benzer, ancak önce betiği çalıştıracak ve kullanıcı için bir görünüm / pencere oluşturmanız gerekir. Başka küçük farklılıklar da var ama bakmaya değer.


Seçenek 2: NW.js eski node-webkit

İşin özü, düğümün genişletilmiş nesne modelini destekleyen web tabanlı bir uygulama yazmanız için JS motorunu genişletmesidir ve modüller ... daha sonra package.json start.html modüllerinizi ve js dosyalarınızı bir zip içinde paketlersiniz ( .nw uzantısı) ve nw (.exe) ile çalıştırın .. windows, mac ve linux yapıları mevcuttur.


Seçenek 3: Node'dan Carlo chrom (ium) kabuğu.

Bu, yerel olarak yüklenmiş Chrome'u yerel olarak çalışan bir sunucu uygulamasına bağlanabilen bir kabuk olarak başlatmanıza olanak tanır. Yerel bir krom gerektiriyor, ancak istenene çok yakın.


Seçenek 4: MacGapNode (Yalnızca OSX)

Düğüm entegrasyonlu MacGap (eskiyor gibi görünüyor)


Bir yana: Hizmetler ...

Bu konuda OSX için bir .App olarak konuşamam, ancak NodeJS'de bir arka plan hizmeti yüklemesi ve masaüstünde bir "yerel" siteye bir bağlantı oluşturmak pekala mümkün olabilir. Çoğu tarayıcının tüm özellikleri göstermeme seçeneği vardır (özellikle firefox'un gösterdiğini biliyorum).

Sorunuzun özellikle OSX için olduğunu biliyorum, ancak Windows'ta NSSM'yi herhangi bir şeyi bir hizmet olarak çalıştırmak için kullanabilirsiniz ve bunu Windows'ta NodeJS tabanlı hizmetler için kullandım. Yine de yukarıdaki diğer seçeneklerden bazılarının ihtiyaçlarınıza bağlı olarak daha iyi olduğunu düşünüyorum.


Kaldırıldı:


Bu cevap, birden fazla soru için kopyalanmıştır, bu referanslar çoğunlukla kolaylık sağlamak içindir.


OSX ve Linux için github.com/crcn/nexe de bir çözüm gibi görünüyor.
robocat

Görünüşe göre node-webkit bunlar arasında kazanan. Intel tarafından desteklenen büyük geliştirici tabanı, iyi belgeler.
Dan

gerty, teşekkürler ... Cevabımı nexe'yi içerecek şekilde güncelledim ve node-webkit'i en üst noktaya getirdim ... appj'ler biraz eskimeye başlıyor gibi görünüyor.
Tracker1

OSX için ödeme Macgap, böylece uygulama mağazasına gönderebilirsiniz. Düğüm webkit'i, gelecekte potansiyel olarak eski bir API'yi kullandığı için reddedilir.
Michael J. Calkins

Hmm, şimdi bir fikir var. Uygulamayı arka planda sunucu olarak çalıştırın, ardından bunun için bir tarayıcı penceresi açın (ör. Pencere çerçevesi veya sekmeleri / adres çubuğu olmayan bir tarayıcıyı nasıl başlatabilirim ). Bu şekilde pencere üzerinde çok fazla kontrole sahip olmazsınız (örneğin, tarayıcı dosya, düzenleme, görüntüleme vb. Menü öğelerini yönetir ve kullanıcı tarayıcının yazdırma, yakınlaştırma ve sayfa içi gibi şeylere hala erişebilir. arama işlevleri), ancak temelde fazladan bir çerçeveye gerek yoktur.
Ajedi32

8

Topcube'e bakmanızı öneririm, amacı "düğüm geliştiricilerine, GUI platformu olarak HTML5 + CSS3 kullanan düğüm sunucularına bir masaüstü GUI'si vermenin bir yolunu sunmaktır." Github'da Topcube .


1
Topcube daha uzun süre desteklenmiyor gibi görünüyor
Shamoon

Evet, Titanium'a bakmanızı öneririm. Node.js değil, JS tabanlı ve PC ve mobil uygulama geliştirme için çapraz platformdur. appcelerator.com/products/…
Brian Heese

O Titanyum bağlantısı çürümüş. Sanırım bundan bahsettiğiniz şey bu: docs.appcelerator.com/titanium/2.0/index.html Opak pazarlama ağırlıklı web siteleri, ürünlerinin ne olduğunu veya bakımını görmeyi zorlaştırıyor.
Grumdrig

Not: Titanium masaüstü parçaları artık geliştirilmeyecek / desteklenmeyecek.
Sri Kadimisetty

1
Titanium Desktop geliştirme yeni bir geliştirici grubu tarafından üstlenildi
Motin

-1

Şu anda bunu başarmanın birçok yolu var.

Bir düğüm + html5 uygulamasını paketleme alanındaki açık kazanan şu anda Electron (Atom, VSCode, Slack, Discord vb. Tarafından kullanılıyor).

Ayrıca bir uygulama olarak paketlenmiş başka herhangi bir dili de kullanabilir (bu diller / yığınlar için araçlar kullanarak) ve bir düğüm kurulumunu kontrol edebilir, düğüm ile "sunucu" komut dosyasını başlatabilir, ardından varsayılan tarayıcıyı (veya diğer bazı araçlar), sonunda düğüm hizmetinin konumunu ayarlayın. Bu çok hafif ve verimli bir yöntemdir, ancak Electron gibi bir çözüm olarak işletim sistemi ile iyi entegre değildir.

Electron'un buradaki birincil rakibi NW.js'dir. Anlayabildiğim kadarıyla, NW.js'de Electron'un sahip olmadığı (henüz) temel özellik derleme / gizleme. Electron, otomatik güncellemeleri kolaylaştırırken.

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.