1

目标:使用 Electron(Atom Shell)创建一个桌面应用程序(GUI),从 io.js 运行 gem 的命令。

1.问题是我想知道哪个是处理系统内部gem的命令调用的最佳方法。

2.如果系统内部没有安装gem,桌面应用程序毫无价值。处理这种依赖关系的最佳方法是什么?

我整理的示例代码

var spawn = require("child_process").spawn;
var jk = spawn('jekyll', ['serve']);

jk.stdout.on('data', function(data){
  console.log(data.toString('utf8')); // WRITE IN THE CONSOLE GEM OUTPUT
});

该代码是执行命令的好方法吗?

我的理想方案是“作为用户,我想按下编译站点的按钮”-> 单击然后运行可能由该代码处理的 gem 的构建命令。

4

1 回答 1

1

这是一个使用“ShellJS”和 jekyll 作为依赖项的人为示例:

var shell = require('shelljs');

if (shell.which('gem')) {
  if (shell.exec("gem install jekyll").code === 0) {
      shell.exec("jekyll new my-site");
      //Do more stuff
      shell.exec("jekyll build");
  }
} else {
  echo('Sorry, this program requires gem. Install from Source');
  exit(1);
}

这个想法是使用 which 检查是否安装了 gem,然后安装依赖项。然后,您可以使用 exec 使用该 gem 运行命令。

于 2015-06-28T03:17:20.947 回答