有opal-irb
和opal-jquery
以及vienna
但是有没有办法通过Opal在浏览器中直接使用gems?
答案 0 :(得分:6)
您可以使用lib
Opal.use_gem
路径
常见的陷阱是:
``
和%x{}
)修复/解决其中一些问题的可用工具包括:
Opal::Processor.stub_file('fileutils')
RUBY_ENGINE
在编译时隐藏代码分支,
例:
unless RUBY_ENGINE == 'opal'
unparsable/breaking code here
end
您可以查看opal-rspec
源代码,了解这些内容:
答案 1 :(得分:3)
与往常一样,答案是肯定的,但同时不是,这取决于你的观点。 Opal会将您的ruby(所有)转换为JavaScript并提供适当的运行时间。如果您需要gem,则在编译过程中将需要它,并将包含在生成的JavaScript中。您可以在ruby代码中自由使用生成的ruby类(它最终会被编译成JavaScript)。
所以你可以需要宝石,但要记住他们的需求也是必需的,所以如果你不是,那么最终会得到一个JavaScript文件的噩梦小心。 技术上你仍然没有在浏览器中运行ruby,为了这个目的,所有这些都必须编译为JavaScript。但是你可以运行你的ruby生成的代码和所需的宝石,虽然它在这个过程中会变成JavaScript(你必须这样调试它)。但是这种方法存在一些限制,您必须牢记JavaScript Number
和String
属性(也称为只有不可变String
s),但在这些限制内,您可以共享您的代码服务器和客户端之间。