AIM:使用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的构建命令。
答案 0 :(得分: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);
}
想法是使用哪个来检查是否安装了gem,然后安装依赖项。然后,您可以使用exec来运行该gem的命令。