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

k12*_*2th 6 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字段存在.

Pav*_*eev 6

是的,只需添加"show": falsepackage.json即可

{
  "name": "My CLI App",
  "main": "index.html",
  "window": {
    "show": false
  }
}
Run Code Online (Sandbox Code Playgroud)

package.json选项的文档

如果你想要你可以app.nw使用node-webkit创建打开的包,那么你不需要发送大包.


您还可以创建一个包装器来.js从终端运行简单文件:

#!/bin/bash
# file nw-runner
BASEDIR=$(dirname $0)
/Applications/node-webkit.app/Contents/MacOS/node-webkit $BASEDIR/path/wrapper_app "$@"
Run Code Online (Sandbox Code Playgroud)

所以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);
}
Run Code Online (Sandbox Code Playgroud)

然后可以像这样运行*.js文件:

nw-runner ./my_app.js
Run Code Online (Sandbox Code Playgroud)