我正在构建一个应用程序,它既可以作为独立应用程序托管,也可以在 Web 浏览器中运行。这意味着某些类应该以不同的方式实现(但以相同的方式使用)。例子:
If OPAL_RB
require 'javascript_aware_lib'
else
require 'native_lib'
end
问题在于,Ruby 将在运行时评估它,但 Opal 将在编译时评估它。如果不是这样,我可以简单地使用救援子句:
begin
RUBY_ENGINE_VERSION
#opal requires goes here
rescue
# MRI Ruby requires goes here
end
所以,简单地说:是否有任何指令或变通方法来阻止 Opal 评估代码块?谢谢。