目前有哪些 JavaScript 框架支持使用 RequireJS 加载其他模块?

4

我目前正在使用MooTools,但想开始使用RequireJS模块加载进行一些开发。是否有其他框架可以直接支持RequireJS模块加载?我听说Dojo 1.7将支持,但它仍在开发中。还有其他选项吗? 谢谢。

请注意,在翻译过程中HTML标签已被保留。

2个回答

5
  • jQuery 1.7支持。
  • MooTools 2.0将很快支持。
  • 支持Dojo 1.7(但存在一些模块冲突,如text模块)。
  • ExtJS 4不支持RequireJS,但有一个内置的懒加载解决方案用于它的模块。

您可以为任何您想要的框架添加模块支持。如果框架不支持RequireJS,则可以创建包装文件来加载该框架。

Zepto包装文件示例:

define(['lib/zepto'], function() {
    require(['lib/zepto']);
    return this.Zepto;
});

在您的应用程序中,您需要在包装文件中定义Zepto的路由,并让它加载lib。
主应用程序文件示例:
require({paths: { 'zepto': 'wrapper/zepto' } });

因此,您的应用程序文件结构将类似于以下内容:

main.js
lib/zepto.js
wrapper/zepto.js

任何框架都可以支持RequireJS,但是您需要为没有添加AMD加载程序支持的模块编写一些包装器。
编辑09/07/2012:
RequireJS 2.+有一个名为“shim”的新功能,使得可以与任何基于浏览器的框架一起使用。
还有一个新功能,可以从CommonJS模式中提出服务器端非AMD require建议的包装器。

1
请注意,我不想加载整个库,这可以使用任何框架完成。我想要加载框架的特定组件,而不是全部组件,并且我认为框架应该提供AMD支持... - Alejandro García Iglesias
如果您只需要核心部分,可以将模块附加到您正在使用的框架的全局变量中。例如,在zepto中,您需要在ajax模块包装器中从require文件中包含核心包装器。在要求模块之前,您需要声明变量,如“var Zepto = this.Zepto”,它将与Zepto Core混合。仅在真正需要使用不受支持的AMD框架时使用。 - Gabriel Gartz
谢谢提供信息,但我真的需要一个支持AMD的框架来避免支持问题。 - Alejandro García Iglesias
此外,MooTools 2和Dojo 1.7仍在进行中,而jQuery对我来说不是一个选择。看来我还需要等一段时间... - Alejandro García Iglesias
也许对你来说一个好的解决方案是使用ExtJS,它是一个双重许可框架,非常完整,具有内置的支持懒加载模块的功能。它不是requirejs,但运行得很好。并且有非常好的易于理解的文档和大量的模块。 - Gabriel Gartz
显示剩余3条评论

1

MooTools 2.0会这样做,请在Github上的MooTools库下检查该分支。


MooTools 2.0仍在开发中。我需要一个稳定版本。 - Alejandro García Iglesias
2
更新:MooTools Core 将在 1.5 版本中打包为符合 AMD 标准的模块,距离发布还有约一个月的时间 ;) - csuwldcat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接