บรรจุเว็บแอป node.js เป็นแอปเดสก์ท็อปทั่วไป [ปิด]


86

ฉันได้ค้นหาข้อมูลเล็กน้อย แต่ไม่พบเครื่องมือที่มีอยู่สำหรับสิ่งนี้

ฉันมีเว็บเซิร์ฟเวอร์ node.js ที่ออกแบบมาให้ทำงานบนคอมพิวเตอร์ของคุณเองซึ่งทำสิ่งที่น่ารำคาญให้กับคุณ คงจะดีไม่น้อยถ้าฉันสามารถดับเบิ้ลคลิกMySnazzyThing.appแทนการติดตั้ง nodejs และ npm และทำงานnode mysnazzyapp.jsบนบรรทัดคำสั่ง

.appปฏิบัติการจะ spool ค่าเซิร์ฟเวอร์โหนดและเปิดหน้าต่าง WebKit ง่ายพื้นเมืองซึ่งจะแสดงสิ่งที่ตามปกติจะเป็นlocalhost:3000ถ้าฉันได้ทำงานในบรรทัดคำสั่ง

จากนั้นแอปเนทีฟนี้สามารถพูดได้ว่าเผยแพร่ผ่าน mac app store และแบมแอปเดสก์ท็อป node.js

มีเครื่องมือดังกล่าวหรือไม่? หรือมีเหตุผลทางเทคนิคใด ๆ ที่ทำให้ไม่ได้ผลอย่างที่คิด

คำตอบ:


21

คุณสามารถทำได้โดยใช้ AppJS: https://github.com/appjs/appjs


5
Splash page สำหรับโครงการ AppJS ชี้ไปที่ deskshell: github.com/sihorton/appjs-deskshell
yzorg

2
ตามที่คำตอบของ @ Tracker1 ระบุว่า deskshell เป็นโครงการเก่าและยังไม่ได้รับการพัฒนาตั้งแต่ธันวาคม 2013
cmroanirgo

91

ตัวเลือกที่ 1: อิเล็กตรอน (aka atom-shell)

นี่คือเชลล์ที่โปรแกรมแก้ไข Atom ของ github ใช้ คล้ายกับ node-webkit มากแม้ว่าจะเรียกใช้สคริปต์ก่อนและคุณต้องสร้างมุมมอง / หน้าต่างสำหรับผู้ใช้ มีความแตกต่างเล็กน้อยอื่น ๆ แต่ก็คุ้มค่าที่จะดู


ทางเลือกที่ 2: NW.jsเดิม node-webkit

สิ่งสำคัญคือโดยทั่วไปจะขยายเอ็นจิ้น JS เพื่อให้คุณเขียนแอปบนเว็บที่รองรับโมเดลอ็อบเจ็กต์แบบขยายของโหนดและโมดูล ... จากนั้นคุณรวมโมดูล package.json start.html และไฟล์ js ลงใน zip (ด้วย .nw) และรันด้วย nw (.exe) .. มี windows, mac และ linux builds


ตัวเลือกที่ 3: เปลือกCarlo chrom (ium) จาก Node

ซึ่งจะช่วยให้คุณสามารถเปิด Chrome ที่ติดตั้งในเครื่องเป็นเชลล์ที่สามารถเชื่อมต่อกับแอปพลิเคชันเซิร์ฟเวอร์ที่ทำงานอยู่ภายในเครื่อง มันต้องใช้โครเมี่ยมในเครื่อง แต่อยู่ใกล้กับสิ่งที่ขอ


ตัวเลือกที่ 4: MacGapNode (OSX เท่านั้น)

MacGap พร้อมการรวมโหนด (ดูเหมือนว่าจะค้าง)


นอกเหนือ: บริการ ...

ฉันไม่สามารถพูด OSX ในเรื่องนี้เป็น. App ได้ แต่อาจเป็นไปได้ที่จะสร้างการติดตั้งบริการพื้นหลังใน NodeJS และลิงก์ไปยังไซต์ "ในเครื่อง" บนเดสก์ท็อป เบราว์เซอร์ส่วนใหญ่มีตัวเลือกที่จะไม่แสดงคุณสมบัติทั้งหมด (ฉันรู้ว่า firefox ทำโดยเฉพาะ)

ฉันรู้ว่าคำถามของคุณคือ OSX โดยเฉพาะ แต่ใน windows คุณสามารถใช้ NSSM เพื่อเรียกใช้อะไรก็ได้ในฐานะบริการและฉันได้ใช้มันสำหรับบริการที่ใช้ NodeJS ใน windows ฉันคิดว่าตัวเลือกอื่น ๆ ข้างต้นดีกว่าขึ้นอยู่กับความต้องการของคุณ


นำออก:

  • nexe - เก่า / ไม่ได้รับการดูแล
  • AppJS - แทนที่ด้วย DeskShell
  • DeskShell - เก่าเว็บไซต์ออฟไลน์
  • node-webkit -เปลี่ยนชื่อเป็น NW.js
  • โครงการ XULRunnerหยุดชะงักและล้าหลังเหลือเกิน
  • Thrust ( Node Adapter ) - เลิกใช้แล้ว / เก่า

คำตอบนี้ถูกคัดลอกสำหรับคำถามหลายข้อการอ้างอิงเหล่านี้ส่วนใหญ่มีไว้เพื่ออัปเดตความสะดวก


สำหรับ OSX และ Linux github.com/crcn/nexeก็ดูเหมือนเป็นโซลูชัน
robocat

ดูเหมือนว่า node-webkit จะเป็นผู้ชนะในกลุ่มนี้ ฐานนักพัฒนาขนาดใหญ่เอกสารที่ดีสนับสนุนโดย Intel
Dan

gerty ขอบคุณ ... ฉันอัปเดตคำตอบของฉันเพื่อรวม nexe และทำให้ node-webkit เป็นจุดสูงสุด ... ดูเหมือนว่า appjs อาจจะค้างเล็กน้อย
Tracker1

สำหรับ OSX ชำระเงิน Macgap เพื่อให้คุณสามารถส่งไปยัง app store Node webkit ถูกปฏิเสธเนื่องจากใช้ API ที่อาจล้าสมัยในอนาคต
Michael J.Calkins

อืมตอนนี้มีความคิด เรียกใช้แอปเป็นเซิร์ฟเวอร์ในพื้นหลังจากนั้นเปิดหน้าต่างเบราว์เซอร์ขึ้นมา (เช่นฉันจะเปิดเบราว์เซอร์ที่ไม่มีกรอบหน้าต่างหรือแท็บ / แถบที่อยู่ได้อย่างไร ) คุณไม่สามารถควบคุมหน้าต่างได้มากเท่าที่ควร (เช่นเบราว์เซอร์จัดการรายการเมนูเช่นไฟล์แก้ไขดู ฯลฯ และผู้ใช้ยังคงสามารถเข้าถึงสิ่งต่างๆเช่นการพิมพ์การซูมและในหน้าของเบราว์เซอร์ ฟังก์ชันการค้นหา) แต่โดยพื้นฐานแล้วไม่จำเป็นต้องมีกรอบงานเพิ่มเติม
Ajedi32

8

ฉันขอแนะนำให้ดู Topcube เป้าหมายคือ "ให้นักพัฒนาโหนดมีวิธีที่จะมี GUI บนเดสก์ท็อปไปยังเซิร์ฟเวอร์โหนดโดยใช้ HTML5 + CSS3 เป็นแพลตฟอร์ม GUI" Topcube ที่ GitHub


1
ดูเหมือนว่า Topcube จะไม่ได้รับการสนับสนุนอีกต่อไป
Shamoon

ใช่ฉันขอแนะนำให้มองหา Titanium ไม่ใช่ Node.js แต่เป็นแบบ JS และข้ามแพลตฟอร์มสำหรับการพัฒนาพีซีและแอปพลิเคชันมือถือ appcelerator.com/products/…
Brian Heese

ลิงค์ไทเทเนียมนั้นผุพัง ฉันคิดว่านี่คือสิ่งที่คุณกำลังอ้างถึง: docs.appcelerator.com/titanium/2.0/index.html เว็บไซต์ที่เน้นการตลาดแบบทึบของพวกเขาทำให้ยากที่จะดูว่าผลิตภัณฑ์ของพวกเขาคืออะไรหรือต้องดูแล
Grumdrig

หมายเหตุ: ชิ้นส่วนเดสก์ท็อปไทเทเนียมจะไม่ได้รับการพัฒนา / รองรับอีกต่อไป
Sri Kadimisetty

1
การพัฒนา Titanium Desktop ได้รับการพัฒนาโดยกลุ่มนักพัฒนาใหม่: tidesdk.org
Motin

-1

ปัจจุบันมีวิธีมากมายเหลือเฟือที่จะทำสิ่งนี้ให้สำเร็จ

ผู้ชนะที่ชัดเจนในพื้นที่ของการบรรจุแอป node + html5 ปัจจุบันคือ Electron (ใช้โดย Atom, VSCode, Slack, Discord ฯลฯ )

คุณยังสามารถใช้ภาษาอื่น ๆ ที่รวมเป็นแอป (โดยใช้เครื่องมือสำหรับภาษา / สแต็กเหล่านั้น) และตรวจสอบการติดตั้งโหนดเปิดสคริปต์ "เซิร์ฟเวอร์" พร้อมโหนดจากนั้นเปิดเบราว์เซอร์เริ่มต้น (หรือส่วนประกอบมุมมองเว็บบางส่วนโดย วิธีอื่น ๆ ) ตั้งค่าตำแหน่งเป็นบริการโหนดในที่สุด นี่เป็นวิธีการที่มีน้ำหนักเบาและมีประสิทธิภาพมาก แต่ก็ไม่ได้รวมเข้ากับระบบปฏิบัติการเช่นเดียวกับ Electron

คู่แข่งหลักของ Electron ที่นี่คือ NW.js เท่าที่ฉันสามารถบอกได้คุณสมบัติหลักที่ NW.js มีที่ Electron ไม่ได้ (ยัง) คือการคอมไพล์ / การทำให้ยุ่งเหยิง ในขณะที่ Electron ทำให้การอัปเดตอัตโนมัติเป็นเรื่องง่าย

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.