我需要从 node.js 应用程序中运行 ruby 脚本。该脚本需要 Ruby 2.0,但当我尝试运行该脚本时,它一直运行 1.8 并且失败。我已经尝试过
child_process.exec("rvm use 2.0.0;ruby file.rb", {cwd: 'directory_name'}, function(err, stdout){
console.log(stdout)
});
但它不起作用。有什么想法吗?
最佳答案
在执行 ruby 之前切换 gemset/ruby 版本的另一种方法是生成一个为您完成这项工作的 RVM 包装器。
rvm use 2.0.0
rvm wrapper 2.0.0@<gemset> <prefix> # gesmset and prefix are optional but I'd use them for clarification
运行此命令会在 ~/.rvm/bin
中生成一个 ruby stub ,或者,如果您已在系统范围内安装了 RVM,则会在 /usr/local/rvm/bin
中生成一个 ruby stub 。该 stub 在执行时会自动切换到指定的 ruby-version/gemset。
您的 Node 脚本可能如下所示:
child_process.exec("~/.rvm/bin/<prefix>_ruby file.rb", {cwd: 'directory_name'}, function(err, stdout){
console.log(stdout)
});
关于ruby - 使用 child_process.exec 从 NodeJS 调用 Ruby 时如何设置 Ruby 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18797299/