2015-02-03 12 views
5

Có cách nào để có ứng dụng chỉ có giao diện điều khiển, GUIless, không cửa sổ với nw.js không?Có thể xây dựng ứng dụng bảng điều khiển với nw.js không?

Chúng tôi có một số tiện ích nội bộ được tạo ban đầu với App.js và gần đây được chuyển đổi thành nw.js (trước đây là nút-webkit). Công cụ này bao gồm ứng dụng GUI và giao diện điều khiển (tích hợp để xây dựng quy trình). App.js có thể thực thi bất kỳ * .js như nodejs, trong giao diện điều khiển, nhưng trong nw.js có vẻ như bắt buộc đối với ứng dụng để có một số * .html và cửa sổ chính. Ngay cả khi có node-main trong tệp kê khai, nó cũng yêu cầu trường có sẵn là main.

+4

* "Có cách nào để có ứng dụng chỉ giao diện điều khiển, GUIless, không cửa sổ với nw.js không?" * Tại sao bạn làm điều đó? Trái với việc chỉ sử dụng Node? –

+0

Việc thêm phụ thuộc vào 40MB Webkit chỉ để sử dụng giao diện điều khiển dường như không phải là một ý tưởng hay. Bạn không thể gửi nó với Node.js [binary] (http://nodejs.org/dist/v0.11.16/node.exe)? –

+1

@ ben-fortune, như tôi đã đề cập, cũng có phần GUI. Phần GUI được sử dụng bởi con người, giao diện điều khiển một phần bởi hệ thống xây dựng và đôi khi bởi con người quá. Tôi đang cố gắng tránh phân phối nhị phân node.js cùng với nw.js, chứ không phải ngược lại. – k12th

Trả lời

5

Vâng, chỉ cần thêm "show": false trong package.json

{ 
    "name": "My CLI App", 
    "main": "index.html", 
    "window": { 
    "show": false 
    } 
} 

Documents cho package.json options

Nếu bạn muốn, bạn có thể làm cho app.nw gói mà sẽ được mở với nút-webkit, do đó bạn không cần để gửi gói hàng lớn.


Bạn cũng có thể tạo ra một wrapper để chạy .js file đơn giản từ thiết bị đầu cuối:

#!/bin/bash 
# file nw-runner 
BASEDIR=$(dirname $0) 
/Applications/node-webkit.app/Contents/MacOS/node-webkit $BASEDIR/path/wrapper_app "[email protected]" 

Vì vậy path/wrapper_app sẽ chứa ứng dụng của chúng tôi (package.json, index.html) và chúng tôi sẽ yêu cầu tập tin được chỉ định:

var args = require('gui').App.argv; 
var path = require('path'), fs = require('fs'); 
var runable = path.relative(process.env.PWD, args[0]); 

if (fs.existsSync(runable)) { 
    require(runable); 
} else { 
    process.stdout.write("Can not not find file " + args[0]); 
    process.exit(1); 
} 

Sau đó có thể chạy * nộp .js như thế này:

nw-runner ./my_app.js 
Các vấn đề liên quan