到目前为止,最小的AMD加载器是什么?

8
我正在寻找一个支持动态代码加载且非常小的AMD加载器,此加载器将用于移动/高延迟环境中,并且requirejs过于庞大。
我不需要以下功能:
-文本插件
-CSS插件
-i18n插件
那么最小的支持这些特性的AMD加载器是什么?我正在寻找理想情况下不超过5k(压缩后)大小的东西。请注意,此度量不包括Gzip。

Almond.js 经过压缩后只有 2.4kb,gzip 压缩后仅为 1.2kb。 - ddotsenko
很遗憾,Almond.js不支持动态代码加载。 - duck degen
我是CurlJS的忠实粉丝。我发现它比RequireJS更加可靠。此外,虽然它不在所要求的5kb内,但仍然相当小-8kb,同时还支持动态加载。https://github.com/cujojs/curl/blob/master/dist/curl/curl.js - ddotsenko
我正在解决一个类似的问题,希望能引发一些讨论(http://stackoverflow.com/questions/14986400/what-amd-script-loader-to-use-for-mobile-site)。唯一的区别是我不需要延迟加载。我正在研究lsjs,但希望先听听大家的意见,不过它的本地存储功能看起来很有前途。 - user834418
4个回答

4
“动态代码加载”是指像这个链接中所描述的内容吗?
你可以尝试以下几种(按大小排序): 完整的披露声明:我编写了amdlite。它通过了所有相关的单元测试,但在实际使用中并没有得到广泛应用。如果你尝试并发现其中有任何问题,请提交一个问题

你的amdlite - 看起来真的很棒。到目前为止,我见过的最小的amd加载器。 - oddy
1
@oddy,谢谢!它与其他加载器有些不同,因为它是一种“急切加载器”。这意味着一旦遇到模块定义,其依赖项就开始加载,并且一旦依赖链准备好,工厂就会运行。因此,不需要require函数,您可以像使用require一样使用define。我应该在这些日子里写一个自述文件。 - Dagg Nabbit
我注意到Curl不需要使用require,因此我认为它遵循相同的原则,但是它的体积达到了惊人的9 kb(与amdlite相比)。而且amdlite作为一种插拔式替代方案运行得非常好。真是太棒了,感谢你提供这个小巧的加载器! - oddy

1

我相信这已经相当接近AMD规范了,而且在经过压缩后只有960字节(不包括末尾的无用换行符),可能会成为最佳选择。

https://github.com/MaxMotovilov/eeMD


1
虽然这个链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。仅有链接的答案如果链接页面更改可能会变得无效。 - thewaywewere
1
我不确定在我的评论中应该添加什么内容——原帖发布者正在寻找AMD加载器的链接,我提供了相关信息以及与主要需求(即大小)相关的内容。由于我拥有链接到的存储库,我也可以相当确信它不会消失。 - Max Motovilov

0

你可能想要看一下我写的lockandload AMD loader,以支持我的一些项目:

  • 压缩后但未经过最小化处理,大小约为859字节。

  • 未压缩且未经过最小化处理,大小约为1520字节。

  • 它不需要polyfills,在IE10及以上的所有浏览器上运行。

  • 它与RequireJS兼容(因此支持循环依赖)。

  • 它支持匿名模块。

  • 它也支持加载旧版JavaScript。

  • 它支持旧版jQuery代码。

  • 它集成了Google Tag Manager(GTM)。


2
你应该在其中加入免责声明,说明这个模块是由你编写的。 - ldam
1
我认为那已经很明显了,抱歉,我编辑了答案以澄清那一点。 - BuGless

-1

除了Dagg Nabbit的回答,我还发布了我编写并用于自己项目的AMD代码。

这是一种非常简单和微小的组件。如果你想自己编写,它可以作为一个很好的起点,可以根据你需要的目的进行重新调整。

注意:这不符合任何规范或标准。它只是为了快速和微小而设计。


你所说的“上面”,是指被接受的答案吗?最好在那里放一个链接,或者更具体地说,是用户X的答案。 - Athafoud
这与OP要求的任何事情都不相关:首先,这根本不是AMD加载器 - 其次,它不支持动态加载。 - mindplay.dk
按照严格的异步模块定义,只要你愿意查一下,你也可以知道它很大程度上是 AMD 的一种形式。它允许异步定义和加载代码。但它并不符合 AMD.js 规范。 - TikiTDO
另外,正如其他答案所指出的那样,提问者并没有描述他所说的“动态加载”的含义,这个术语本身就是一个相当普遍的术语,类似于AMD非常通用。简而言之,你在这里唯一的目的似乎是抱怨我没有像你一样精确地使用术语。 - TikiTDO

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