我对Opal提供的使用纯Ruby与CoffeeScript,当然还有JS的方式所提供的力量和优雅感到好奇。
如何利用Opal for Meteor作为开发的主要语言?
更新:我想分享一下,我们已经将焦点转移到Volt,以满足我们在同构环境中的实时需求,从而提供从下到上的Ruby。这是一次非常棒的体验,甚至Matz has tweeted about it 现在几次。
答案 0 :(得分:2)
是的,请查看如何在Meteor中实施coffeescript
包,以便将.coffee
编译为.js
。具体来说,以下
_transitional_registerBuildPlugin
函数告诉meteor如何将coffeescript文件转换为js文件如果一切都设计得非常好,您可能不必触摸捆绑器来创建将构建OpalRb文件的智能包。但是,我猜你可能不得不在捆绑区域中发出一个拉取请求或者两个核心,以便让它与你的包很好地配合。现在,预处理器单独处理所有文件,这可能是您的语言无法实现的(我不确定。)但是,在此过程中,您将有助于使Meteor对其他JS方言和编译器的支持更加出色!
我将重申我的观点,即如果你想要某种高级语言来编写JS,Coffeescript似乎是理想的,特别是因为它支持用于调试的浏览器内源映射。
答案 1 :(得分:2)
我刚刚发布了initial version。
这会将Ruby文件编译为Javascript,但没有特定的流星(尚)。
我计划在某些时候将Meteor移植到Ruby类,保持关注,甚至更好地提交拉取请求......
答案 2 :(得分:2)
也许船上有点迟了:我在Meteor中为Opal写了一个构建插件
你可以在气氛 https://atmospherejs.com/massimoronca/opal https://atmospherejs.com/mikamai/opal
您可以使用
安装插件 <击> meteor add massimoronca:opal
击>
meteor add mikamai:opal
以.rb
或.js.rb
结尾的每个文件都将自动编译。
你必须包装Meteor内置对象,直到我发布一个包这样做的包,你可以找到一个关于如何在这个要点中做到这一点的小例子https://gist.github.com/wstucco/42392ee21b76dfa3ef83
例如,Meteor
全局对象可以像这样包装在Opal中
class Meteor
def self.server?
`Meteor.isServer`
end
def self.client?
`Meteor.isClient`
end
def self.cordova?
`Meteor.isCordova`
end
def self.startup(&block)
`#{block.call if block_given?}`
end
end
并以这种方式使用
puts "Hello from server" if Meteor.server?
编辑:将插件移到Mikamai帐户
下