【问题标题】:What is the smallest AMD loader to date? [closed]迄今为止最小的 AMD 加载程序是什么? [关闭]
【发布时间】:2013-01-15 13:56:56
【问题描述】:

我正在寻找支持动态代码加载的 AMD 加载器,而且非常小。

loader是在移动/高延迟环境下使用的,requirejs的大小实在是太大了。

我不需要:
-文本插件
-css 插件
-i18n 插件

支持这些功能的最小 AMD 加载程序是什么?我正在寻找缩小时理想情况下不大于 5k 的东西。 Gzip 不包含在此措施中。

【问题讨论】:

  • Almond.js 被缩小了 2.4kb。 1.2kb 压缩包。
  • 不幸的是,Almond.js 不支持动态代码加载。
  • 我是 CurlJS 的忠实粉丝。我发现它比 RequireJS 可靠得多。另外,虽然它没有低于要求的 5kb,但它仍然相当小 - 8kb,同时打包动态加载。 github.com/cujojs/curl/blob/master/dist/curl/curl.js
  • 我正在处理一个类似的问题,希望能够进行讨论 (stackoverflow.com/questions/14986400/…)。一个区别是我不需要延迟加载。我正在研究 lsjs,但我希望先得到一些意见,但它的本地存储功能看起来确实很有希望

标签: loader amd js-amd


【解决方案1】:

“动态代码加载”是指this 之类的东西吗?

您可能想尝试(按大小顺序列出):

完全披露:我写了 amdlite。它通过了所有相关的unit tests,但没有看到太多的实际使用。如果您试用后发现有问题,请file an issue

【讨论】:

  • 您的 amdlite — 实际上看起来很棒。到目前为止,我见过的最小的 amd 加载器。
  • @oddy,谢谢!它与其他 loader 有点不同,因为它是一个“eager loader”。这意味着一旦遇到模块定义,它的依赖就开始加载,一旦依赖链准备好,工厂就会运行。所以不需要require 函数,你可以像使用require 一样使用define。这些天我可能应该写一篇自述文件。
  • 我注意到了。 Curl 也不需要使用 require,所以我认为它遵循相同的原则,但它的重量为 9 kb(与 amdlite 相比)。 amdlite 作为替代品就像一种魅力。非常棒的工作,感谢您提供的这款小型装载机!
【解决方案2】:

我相信这相当接近 AMD 规范,并且在缩小 960 字节(不包括末尾的虚假换行符)时可能会占据榜首。

https://github.com/MaxMotovilov/eeMD

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
  • 我不确定要在我的评论中添加什么 - 原始发帖人要求提供指向 AMD 加载程序的链接,这就是我提供的内容以及与主要要求(即大小)相关的信息。由于我拥有链接到的存储库,因此我也可以合理地确定它不会消失。
【解决方案3】:

您可能想看看我写的这个lockandload AMD loader 以支持我自己的一些项目:

  • Gzip 压缩但未缩小,大约 859 字节。

  • 未压缩也未缩小,大约 1520 字节。

  • 它不需要 polyfill,它可以在 IE10 及更高版本的所有浏览器上运行。

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

  • 支持匿名模块。

  • 它也支持加载旧版 javascript。

  • 它支持旧的 jQuery 代码。

  • 它集成了谷歌标签管理器(GTM)。

【讨论】:

  • 您应该在您编写此模块时加入免责声明。
  • 我认为这已经很明显了,抱歉,编辑了答案以澄清这一点。
【解决方案4】:

除了Dagg Nabbit's answer,我还发布了我为自己的项目编写并使用的 AMD 代码。

您可以制作这种组件,它既小巧又简单。如果您想自己动手,它可以作为一个很好的起点,您可以根据需要重新调整工具。

注意:这不符合任何类型的规范或标准。它只是为了快速而小巧。

【讨论】:

  • “上述”是指已接受的答案?最好放一个链接,或者更具体,例如用户 X 的答案
  • 这不是 OP 所要求的:首先这根本不是 AMD 加载器 - 其次,它不支持动态加载。
  • 按照异步模块定义的严格定义,你也可以知道,如果你费心去查的话,它很像一个AMD。它允许异步定义和加载代码。它不符合 AMD.js 规范。
  • 另外,正如另一个答案所指出的那样,提问者没有描述他所说的“动态加载”是什么意思,这本身就是一个相当通用的术语,类似于 AMD 的通用性。简而言之,您在这里的唯一目的似乎是抱怨我没有按照您的具体方式使用这些术语。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-07
  • 2012-07-08
  • 1970-01-01
  • 2011-12-10
  • 2015-01-09
  • 2016-04-29
  • 2017-08-14
相关资源
最近更新 更多