5

我一直对Opal在使用纯 Ruby 与 CoffeeScript 或者,当然还有 JS 的方式中提供的强大和优雅很感兴趣。

如何将 Opal for Meteor 用作开发的主要语言?

更新:只是想分享一下,我们已将重点转移到 Volt,以满足我们在从下到上提供 Ruby 的同构环境中的实时需求。这是一次很棒的经历,甚至 Matz已经在推特上发布了几次。

4

3 回答 3

2

是的,看看这个coffeescript包是如何在 Meteor 中实现的,以便编译.coffee.js. 具体如下

如果一切都设计得非常好,您可能不必触摸捆绑器来创建将构建 OpalRb 文件的智能包。但是,我猜您可能必须在捆绑器区域发出一两个拉取请求以使其与您的包一起使用。现在,预处理器单独处理所有文件,这对于您的语言可能是不可能的(我不确定。)但是,在此过程中,您将有助于使 Meteor 对其他 JS 方言和编译器的支持更好!

我将重申我的观点,如果您想要某种高级语言来编写 JS,Coffeescript 似乎是理想的,特别是因为它现在支持用于调试的浏览器内源映射。

于 2013-08-16T04:40:22.947 回答
2

我刚刚发布了一个初始版本

这会将 Ruby 文件编译为 Javascript,但还没有特定的流星。

我计划在某个时候将 Meteor 移植到 Ruby 类中,敬请期待,甚至更好地提交拉取请求......

于 2013-12-14T04:17:45.447 回答
2

可能有点晚了:我在 Meteor 中为 Opal 编写了一个构建插件。
你可以在大气中找到它https://atmospherejs.com/massimoronca/opal https://atmospherejs.com/mikamai/opal

您可以使用安装插件

meteor add massimoronca:opal
meteor add mikamai:opal

每个以.rbor结尾的文件.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帐户下

于 2015-02-26T12:10:38.480 回答