是否可以使用nw.js构建控制台应用程序?

时间:2015-02-03 10:25:54

标签: javascript node-webkit nw.js

有没有办法让nw.js的控制台,无GUI,无窗口应用程序?

我们最初使用App.js创建了一些内部实用程序,最近转换为nw.js(以前称为node-webkit)。该工具由GUI应用程序和仅控制台(集成到构建过程)对应组成。 App.js能够在控制台中执行任何类似nodejs的* .js,但在nw.js中,应用程序似乎必须拥有一些主要的* .html和窗口。即使在清单中使用node-main时,也需要main字段。

1 个答案:

答案 0 :(得分:6)

是的,只需在package.json

中添加"show": false即可
{
  "name": "My CLI App",
  "main": "index.html",
  "window": {
    "show": false
  }
}

package.json options的文档

如果您需要,可以使用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