我会说在你准备好投入生产之前使用 RequireJS。然后编译你的脚本并将 RequireJS 替换为 Almond。它是由 James Burke(RequireJS 的作者)制作的一个简单的库,因此您可以依靠它无缝地工作:
一些开发人员喜欢使用 AMD API 来编写模块化 JavaScript,但在进行了优化构建之后,他们不想包含像 RequireJS 这样的完整 AMD 加载程序,因为他们不需要所有这些功能。某些用例(例如移动设备)对文件大小非常敏感。
通过在构建文件中包含杏仁,不需要 RequireJS。使用 Closure Compiler 压缩并压缩后,almond 大约为 1 KB。
https://github.com/jrburke/almond
编辑:
Curl.js 也是一种选择。我没有使用过它,但知道它比 RequireJS 小很多。做了一些研究以了解原因:
RequireJS 通过 Curl 执行以下操作(通过 James Burke):
- 支持多版本/上下文,对模拟测试很有用,但你可以不用它
- 支持通过 require 加载纯 JS 文件,不必是 AMD 模块
- 支持特殊检测并与旧版本的 jQuery 一起工作(如果您使用 jQuery 1.7.1 或更高版本,这应该不是问题)
- (目前)更好地支持简化包装的 commonjs 样式:define(function(require) {});
简而言之,如果您只打算在应用程序中处理 AMD 模块,不需要多版本/上下文支持,并且不使用简化的 commonjs 包装样式,或者使用较旧的 jQuery,那么 curl 可能是一个不错的选择。
https://groups.google.com/forum/?fromgroups=#!topic/requirejs/niUyLZrivgs
Curl的作者:
RequireJS 在比 curl.js 更多的地方运行,包括 WebWorkers 和 node.js。它也比 curl.js 有更多的“战斗测试”,这可能意味着它在边缘情况下的错误更少。curl.js 还缺少一些重要功能,例如隐式依赖项的预加载和对 AMD 包装的 commonjs 模块的支持。这些都将在 0.6 版(下周晚些时候)中出现。
从好的方面来说,curl.js ......
大小只有 RequireJS 的 1/4 ——即使与 js 捆绑在一起!和domReady!插件它仍然不到一半的大小。
在加载模块方面比 RequireJS 更快,但只有在 IE6-8 或开发(非构建)环境中才有意义。
支持 AMD 以外的格式的可插拔模块加载器(例如,我们正在开发未包装的 CJSM/1.1 和 CJSM/2.0)。
通过 IOC 容器(如wire.js(通过 cram.js))支持基于配置的依赖管理。
支持 css 内联(通过 cram.js)和 css 连接(通过 cram.js 0.3 年底)
https://github.com/cujojs/curl/issues/35#issuecomment-2954344