使用RequireJS与Rails 3.1应用程序

Joh*_*ley 25 requirejs ruby-on-rails-3.1 sprockets

如果您已经将RequireJS与Rails 3(特别是3.1)应用程序一起使用,那么它对您有何帮助?我需要注意的任何配置技巧或其他陷阱?

背景

我正在考虑在Rails 3.1中使用基于Sprockets的资产管道的RequireJS,特别是对于JavaScript代码.我有两个激励因素可供选择:

  • 我想利用RequireJS的模块管理来获取我的JS客户端代码.
  • 我想要一个可以跟随我的JS库代码进入其他上下文的预编译系统.令我惊讶的是,Asset Pipeline预编译器是Rails的一个部分,而不是Sprockets本身的一部分.

感谢所有反馈,谢谢!

Joh*_*ley 48

对于后人来说,这是我在这个问题上的所在:

  • RequireJS提供了异步模块定义 API的实现.RequireJS' 为何选择AMD?页面列出了为什么要使用它的情况.

  • Sprockets和Rails 3 Asset Pipeline允许简单地构造JavaScript/CoffeeScript代码,但不提供任何真正的模块支持.例如,Sprockets中没有任何名称空间控件.

  • jQuery(截至1.7),Underscore,Dojo和众多其他主要库已经实现了AMD支持.其他几个主要的JS库似乎在短期内支持AMD(例如Backbone.js).

当然可以创建一个集成RequireJS的Rails应用程序.为了简化这个过程,我在github上创建了requirejs-rails gem,通过r.js为基于AMD的代码提供了简单的配置和Asset Pipeline感知预编译.当前版本可通过以下方式获得:

gem install requirejs-rails

  • 谢谢你的宝石.是否有代码Rails应用程序,我可以看到它显示它是如何设置的,最好是使用Backbone.我已经阅读了这些文档,但我是新手来的.js而不是那些经验丰富/熟练的javascript,所以我通过一个有效的例子相处得更好. (2认同)