有没有办法让nw.js的控制台,无GUI,无窗口应用程序?
我们最初使用App.js创建了一些内部实用程序,最近转换为nw.js(以前称为node-webkit)。该工具由GUI应用程序和仅控制台(集成到构建过程)对应组成。 App.js能够在控制台中执行任何类似nodejs的* .js,但在nw.js中,应用程序似乎必须拥有一些主要的* .html和窗口。即使在清单中使用node-main
时,也需要main
字段。
答案 0 :(得分:6)
是的,只需在package.json
中添加"show": false
即可
{
"name": "My CLI App",
"main": "index.html",
"window": {
"show": false
}
}
如果您需要,可以使用node-webkit打开app.nw
包,因此您不需要发送大包。
您还可以创建一个包装器来从终端运行简单的.js
文件:
#!/bin/bash
# file nw-runner
BASEDIR=$(dirname $0)
/Applications/node-webkit.app/Contents/MacOS/node-webkit $BASEDIR/path/wrapper_app "$@"
所以path/wrapper_app
将包含我们的应用程序(package.json,index.html),我们将需要指定的文件:
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);
}
然后可以像这样运行* .js文件:
nw-runner ./my_app.js