有opal-irb和opal-jquery和vienna,但有什么办法可以直接在通过猫眼石的浏览器中使用的宝石?
您可以使用添加gem的lib路径到Opal加载路径Opal.use_gem
常见的陷阱是:
``和%x{})修复/解决其中一些问题的可用工具包括:
Opal::Processor.stub_file('fileutils')RUBY_ENGINE,例如:
unless RUBY_ENGINE == 'opal'
unparsable/breaking code here
end
您可以查看opal-rspec源代码以查看这些内容:
https://github.com/opal/opal-rspec
像往常一样,答案既是肯定的,也是否定的,这取决于您的观点。Opal 会将您的 ruby(全部)转换为 JavaScript 并提供适当的运行时。如果您需要一个 gem,它将在编译过程中需要,并将包含在生成的 JavaScript 中。您可以在 ruby 代码中自由使用生成的 ruby 类(最终会再次编译为 JavaScript)。
因此,您可以require gem,但请记住,它们的 require 也将是必需的,因此如果您不小心,最终将导致 JavaScript 文件的噩梦。从技术上讲,您仍然没有在浏览器中运行 ruby,为此目的,所有这些都必须编译为 JavaScript。但是,您可以运行从 ruby 和所需的 gem 生成的代码,尽管在此过程中它将变成 JavaScript(并且您必须对其进行调试)。不过,这种方法有一些限制,您必须记住 JavaScriptNumber和String属性(也称为不可变的String),但在这些限制内,您可以在服务器和客户端之间共享代码。