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

Is it possible to build console application with nw.js?

本文关键字:构建 控制台 应用程序 js nw 可以使 是否      更新时间:2023-09-26

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

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

是的,只需在package.json中添加"show": false

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

包.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 "$@"

所以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