我正在将一个CLI库从Ruby移植到Node.js.在我的代码中,我在必要时执行几个第三方二进制文件.我不确定在Node中如何最好地完成此任务.
这是Ruby中的一个示例,我将PrinceXML称为将文件转换为PDF:
cmd = system("prince -v builds/pdf/book.html -o builds/pdf/book.pdf")
Run Code Online (Sandbox Code Playgroud)
Node中的等效代码是什么?
我有一个命令行应用程序,它使用thor来处理选项的解析.我想用test-unit和/或minitest对代码进行单元测试命令行功能.
我似乎无法弄清楚如何确保ARGV数组(通常会保存命令行中的选项)保存我的测试选项,以便可以针对代码测试它们.
具体应用代码:
# myapp/commands/build.rb
require 'thor'
module Myapp
module Commands
# Define build commands for MyApp command line
class Build < Thor::Group
include Thor::Actions
build = ARGV.shift
build = aliases[build] || build
# Define arguments and options
argument :type
class_option :test_framework, :default => :test_unit
# Define source root of application
def self.source_root
File.dirname(__FILE__)
end
case build
# 'build html' generates a html
when 'html'
# The resulting html
puts "<p>HTML</p>"
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
可执行文件
# bin/myapp
Run Code Online (Sandbox Code Playgroud)
测试文件
# …Run Code Online (Sandbox Code Playgroud) 我在Ubuntu 12安装上安装了书店,并按照说明安装了PrinceXML.执行王子时我收到以下错误:
/ usr/lib/prince/bin/prince:加载共享库时出错:libjpeg.so.62:无法打开共享对象文件:没有这样的文件或目录
Google Translate图标中使用的两个符号是什么?
我有"A"......说无知的美国人.

ruby ×2
command-line ×1
gem ×1
javascript ×1
node.js ×1
princexml ×1
testing ×1
thor ×1
ubuntu ×1