gpt4 book ai didi

javascript - RequireJS - 打包 Backbone 相关模块,以便在其他 Rails/JS 应用程序中重复使用

转载 作者:行者123 更新时间:2023-12-01 13:57:53 25 4
gpt4 key购买 nike

我正在构建一个基于 Rails 和客户端 Backbone.js 的 Web 应用程序。为了构建我的 Coffeescript 代码,我使用了 RequireJS 和 requirejs-rails .我的每个 Backbone 类都存在于自己的 RequireJS 模块中。

我最近将大量代码重构为一些基类,并希望以某种方式将它们打包以便能够在其他项目中轻松重用它们(Rails 和/或 Javascript/Coffeescript,即使没有 RequireJS 也可以)并在 GitHub 上分享为一个独立于我的 Rails 应用程序的项目。我阅读了关于包的 RequireJS 文档,但它并没有深入到细节。所以这就是我想做的:

  • 将我的共享代码移到它自己的包中,这样 views/base_collection_view 就变成了 commons/views/base_collection_views 等等
  • 在我的 rails 应用程序中将包包含到我的 requirejs-rails 设置中,并提供编译的 my-commons.js 文件以在非 requirejs 设置中使用(我猜后者将使用一旦我想出了如何布置包装,杏仁就相当容易)

在这一点上,一个可重用 RequireJS 包的完整示例确实对我有很大帮助,以及一些如何将其转移到 requirejs-rails 的想法。

最佳答案

不确定 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

如果您对此感兴趣。 ;)

关于javascript - RequireJS - 打包 Backbone 相关模块,以便在其他 Rails/JS 应用程序中重复使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10567950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com