我正在构建一个基于Rails的Web应用程序,并在客户端Backbone.js上构建。为了构建我的Coffeescript-Code,我使用了RequireJS和requirejs-rails。我的每个Backbone类都存在于自己的RequireJS模块中。
我最近在一些基类中重构了很多代码,并希望以某种方式将它们打包,以便能够在其他项目中轻松地重用它们(Rails和/或Javascript / Coffeescript,即使没有RequireJS也可以),并在GitHub上共享它们我的Rails应用程序中的一个单独项目。我在包上阅读了RequireJS文档,但它没有详细介绍。所以这就是我想做的事情:
views/base_collection_view
变为commons/views/base_collection_views
,依此类推my-commons.js
文件,以便在非requirejs设置中使用(我想,一旦我弄清楚,后者将很容易使用杏仁完成如何布局包)可重复使用的RequireJS-package的完整示例在这一点上对我有很大帮助,还有一些想法如何将其转移到requirejs-rails。
答案 0 :(得分:0)
不确定requirejs-rails,但使用RequireJS非常容易。
define(['dep1', 'dep2'] , function ($, otherLibrary) {
return function () {
// your module code
};
});
其中'dep1'和'dep2'是您的模块所依赖的其他RequireJS模块。您可以依赖于您喜欢的少数或多少。传递给实际函数的var名称(本例中为$和otherLibrary)是这些库将在模块中分配的名称。
使用RequireJS的任何人都可以根据文件的命名方式及其所在的文件夹,以这种方式要求您的模块。
例如,如果此文件在libs
目录中名为“my-super-lib.js”,则另一个模块可以将libs/my-super-lib
传递给其依赖关系数组,所有内容都将被设置
更新:记得你提到过coffeescript。同样的想法,但要明确:
define ['dep1', 'dep2'], ($, otherLibrary) ->
() ->
// your module code
如果你进入那个。 ;)