Đóng gói ứng dụng web node.js như một ứng dụng máy tính để bàn bình thường [đã đóng]


86

Tôi đã tìm kiếm một chút nhưng không thể tìm thấy một công cụ hiện có cho việc này.

Tôi có một máy chủ web node.js được thiết kế để chạy trên máy tính của riêng bạn để thực hiện một số việc khó khăn cho bạn. Sẽ khá tuyệt vời nếu tôi có thể nhấp đúp MySnazzyThing.appthay vì cài đặt nodejs và npm và chạy node mysnazzyapp.jstrên dòng lệnh.

Tệp .appthực thi sẽ cuộn lên máy chủ nút và mở một cửa sổ webkit gốc đơn giản, cửa sổ này sẽ hiển thị những gì thường xảy ra localhost:3000nếu tôi đang chạy trên dòng lệnh.

Ứng dụng gốc này có thể được phân phối thông qua cửa hàng ứng dụng mac. Và bam, một ứng dụng máy tính để bàn node.js.

Có bất kỳ công cụ như vậy tồn tại? Hoặc có bất kỳ lý do kỹ thuật nào khiến điều này không hoạt động như tôi tưởng tượng?

Câu trả lời:



90

Phương án 1: electron (hay còn gọi là vỏ nguyên tử)

Đây là shell mà trình soạn thảo Atom của github sử dụng. Nó rất giống với node-webkit, mặc dù nó sẽ chạy script trước và bạn phải tạo một view / window cho người dùng. Có một số khác biệt nhỏ khác, nhưng nó đáng xem xét.


Tùy chọn 2: NW.js trước đây là node-webkit

Ý chính là về cơ bản nó mở rộng công cụ JS để bạn viết một ứng dụng dựa trên web hỗ trợ mô hình đối tượng mở rộng của nút và các mô-đun ... sau đó bạn đóng gói các mô-đun package.json start.html và các tệp js của mình thành một tệp zip (với mở rộng .nw) và chạy nó với nw (.exe) .. có sẵn các bản dựng windows, mac và linux.


Tùy chọn 3: Vỏ Carlo chrom (ium) từ Node.

Điều này sẽ cho phép bạn khởi chạy Chrome được cài đặt cục bộ dưới dạng trình bao có thể kết nối với ứng dụng máy chủ đang chạy cục bộ. Nó yêu cầu chrome cục bộ, nhưng rất gần với những gì được yêu cầu.


Tùy chọn 4: MacGapNode (Chỉ OSX)

MacGap với tích hợp Node (Có vẻ như sắp cũ)


Bên cạnh: Dịch vụ ...

Tôi không thể nói OSX trên đây là .App, nhưng rất có thể tạo cài đặt dịch vụ nền trong NodeJS và liên kết đến trang "cục bộ" trên máy tính để bàn. Hầu hết các trình duyệt có một tùy chọn để không hiển thị tất cả các tính năng (tôi biết cụ thể là firefox).

Tôi biết câu hỏi của bạn là dành riêng cho OSX, nhưng trong windows, bạn có thể sử dụng NSSM để chạy mọi thứ như một dịch vụ và tôi đã sử dụng nó cho các dịch vụ dựa trên NodeJS trong windows. Tôi nghĩ rằng một số tùy chọn khác ở trên tốt hơn tùy thuộc vào nhu cầu của bạn.


Đã xóa:


Câu trả lời này được sao chép cho nhiều câu hỏi, những tài liệu tham khảo này chủ yếu là để cập nhật thuận tiện.


Đối với OSX và Linux github.com/crcn/nexe cũng giống như một giải pháp.
robocat

Có vẻ như node-webkit là người chiến thắng trong số này. Cơ sở nhà phát triển lớn, tài liệu tốt, được hỗ trợ bởi Intel.
Dan

gerty, cảm ơn ... Tôi đã cập nhật câu trả lời của mình để bao gồm nexe, cũng như đưa node-webkit trở thành vị trí hàng đầu ... có vẻ như appj có thể đã cũ một chút.
Tracker1

Đối với Macgap, hãy kiểm tra OSX để bạn có thể gửi lên cửa hàng ứng dụng. Node webkit bị từ chối vì sử dụng một api có khả năng lỗi thời trong tương lai.
Michael J. Calkins

Hmm, bây giờ có một ý tưởng. Chạy ứng dụng dưới dạng máy chủ trong nền, sau đó chỉ cần mở cửa sổ trình duyệt cho ứng dụng đó (ví dụ: Làm cách nào để khởi chạy trình duyệt không có khung cửa sổ hoặc tab / thanh địa chỉ ). Bạn không có nhiều quyền kiểm soát cửa sổ theo cách đó (ví dụ: trình duyệt xử lý các mục menu như tệp, chỉnh sửa, xem, v.v. và người dùng vẫn có quyền truy cập vào những thứ như in, thu phóng và trong trang của trình duyệt chức năng tìm kiếm), nhưng về cơ bản không cần khung bổ sung.
Ajedi32

8

Tôi khuyên bạn nên xem xét Topcube, mục tiêu là "Cung cấp cho các nhà phát triển nút một cách để có GUI trên máy tính để bàn cho các máy chủ nút của họ bằng cách sử dụng HTML5 + CSS3 làm nền tảng GUI." Topcube tại github .


1
Topcube dường như không còn được hỗ trợ lâu hơn nữa
Shamoon

Vâng, tôi khuyên bạn nên xem xét Titanium. Nó không phải Node.js mà là dựa trên JS và nền tảng chéo để phát triển ứng dụng di động và PC. appcelerator.com/products/…
Brian Heese

Liên kết Titanium đó đã mục nát. Tôi cho rằng trang web này là những gì bạn đang đề cập đến: docs.appcelerator.com/titanium/2.0/index.html Trang web nặng về tiếp thị không rõ ràng của họ chắc chắn khiến bạn khó biết sản phẩm của họ là gì hoặc không quan tâm.
Grumdrig

Lưu ý: Các bộ phận máy tính để bàn Titanium sẽ không được phát triển / hỗ trợ nữa.
Sri Kadimisetty

1
Phát triển Titanium Desktop đã được đưa lên trên bởi một nhóm mới của các nhà phát triển: tidesdk.org
Motin

-1

Hiện tại có rất nhiều cách để thực hiện điều này.

Người chiến thắng rõ ràng trong không gian đóng gói ứng dụng nút + html5, hiện là Electron (được sử dụng bởi Atom, VSCode, Slack, Discord, v.v.).

Bạn cũng có thể sử dụng bất kỳ ngôn ngữ nào khác được đóng gói dưới dạng ứng dụng (sử dụng công cụ cho các ngôn ngữ / ngăn xếp đó) và kiểm tra cài đặt nút, khởi chạy tập lệnh "máy chủ" với nút, sau đó khởi chạy trình duyệt mặc định (hoặc một số thành phần chế độ xem web, bằng cách một số phương tiện khác), cuối cùng thiết lập vị trí cho dịch vụ nút. Đây là một phương pháp rất nhẹ và hiệu quả, tuy nhiên không được tích hợp tốt với hệ điều hành như một giải pháp như Electron.

Đối thủ cạnh tranh chính với Electron ở đây, là NW.js. Theo như tôi có thể nói, tính năng chính mà NW.js có mà Electron chưa (chưa) là biên dịch / obfuscation. Trong khi Electron giúp cập nhật tự động dễ dàng.

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.