为什么Underscore.js删除了对AMD的支持

Why did Underscore.js remove support for AMD?

本文关键字:AMD 支持 Underscore js 删除 为什么      更新时间:2023-09-26

1.3.0-2012年1月11日从Undercore中删除AMD(RequireJS)支持。如果你想将Undercore与RequireJS一起使用,你可以将其作为普通脚本加载,包装或修补你的副本,或者下载一个分叉版本。

他们为什么这么做?有人知道吗?因为他们在几个月前(10月)才添加了它,而AMD(异步模块定义)被称为远远优于CommonJS模块。

更新:截至2013年12月,此功能再次得到支持

Jeremy在提交的评论中给出了他的推理:

是的。不支持特定的脚本加载程序肯定会使所有更容易正常工作。

我首先对合并支持表示歉意。

他还在推特上发布了更多关于这一变化的消息(链接来自稍后的评论):

…因为AMD的支持正在打破同样使用Require.js的页面上的常规Undercore嵌入…

Underscore的开发人员认为支持AMD会破坏对非AMD脚本的支持。事实并非如此,因为您可以拥有一个启用AMD的脚本,但也可以在非AMD部署中正常工作。

现在有一个替代Undercore:Lo Dash的替代品。它与Undercore中没有的其他功能一起,包括AMD/非AMD双重性。

我觉得有必要增加这个相当古老的问题。

Backbone和Undercore现在都支持AMD

  1. undercore提交
  2. 骨干网提交

讨论(尽管Backbone的讨论有点令人困惑,因为讨论的基调和实际结果之间存在明显差异):

  1. Undercore问题
  2. 骨干问题

ES5填充程序提供了许多与下划线和lodash(array.forEach()、array.map()等)相同的功能。

ES5填充程序本机支持AMD,与下划线和lodash不同,它不会添加浏览器可能已经提供的内容的额外副本。相反,它将本机ES5功能添加到较旧的浏览器中。

当IE8和其他旧浏览器失效时,您可以简单地删除ES5填充程序依赖项,而不必像使用lodash或下划线那样移植代码。