Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么下划线.js取消了对AMD的支持?_Javascript_Underscore.js_Requirejs_Js Amd - Fatal编程技术网

Javascript 为什么下划线.js取消了对AMD的支持?

Javascript 为什么下划线.js取消了对AMD的支持?,javascript,underscore.js,requirejs,js-amd,Javascript,Underscore.js,Requirejs,Js Amd,1.3.0-2012年1月11日删除了下划线中的AMD(RequireJS)支持。如果您想在RequireJS中使用下划线,可以将其作为普通脚本加载,包装或修补副本,或者下载分叉版本 他们为什么这样做?有人知道吗?因为他们在几个月前(10月)才添加了它,而且据说AMD(异步模块定义)远远优于CommonJS模块 更新:截至2013年12月,这一点再次得到支持。在以下文章中给出了他的理由: 是的。不支持特定的脚本加载程序肯定会使它们更容易正常工作 很抱歉,我首先合并了这些支持 他还介绍了更多关于更

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

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

更新:截至2013年12月,这一点再次得到支持。

在以下文章中给出了他的理由:

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

很抱歉,我首先合并了这些支持

他还介绍了更多关于更改的内容(链接自):

…因为AMD支持正在破坏那些恰好使用Require.js的页面上的常规下划线嵌入


下划线的开发人员认为,拥有AMD支持将破坏对非AMD支持脚本的支持。事实并非如此,因为您可以拥有一个既支持AMD又能在非AMD部署上正常工作的脚本

现在有一个替换下划线的下拉列表:。除了下划线以外的其他功能,还包括AMD/非AMD二元性。

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

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


当IE8和其他较旧的浏览器消亡时,您可以简单地删除ES5垫片依赖项,而不必像使用lodash或下划线那样移植代码。

我觉得有必要补充这个相当老的问题

主干和下划线现在都支持AMD

  • 讨论(尽管主干网的讨论有点令人费解,因为讨论的基调和实际结果之间存在明显的差异):


  • 我希望你可以链接到一篇帖子、邮件讨论或twitter评论,其中包含对这一行为的动机或开发者的澄清。异步模块定义不是高级模块加载器,请看,到目前为止,AMD最突出的声音是require.js的创建者本人,据说远远优于commonjs/etc。我不太倾向于盲目听取某一特定方法的创造者的意见,而更倾向于听取社会人士的意见,到目前为止,陪审团还没有决定。@SalmanPK这一变化只是意味着下划线现在是不可知的。所以,你可以自由地为你需要的任何装载机设置它。这怎么会是一件坏事呢?因为现在我们不能在没有额外配置或手动编辑的情况下将其与任何AMD兼容的加载程序(RequireJS、Almond.js、curl.js、lsjs、bdLoad、Yabble等)一起使用。@SalmanPK使用专门用于AMD下划线的fork,然后:。注意:如问题中所述,下划线再次与AMD兼容,截至2013年12月,谢谢你的澄清。我认为这个答案被低估了。然而,我觉得这个答案的语气(有意或无意)是对下划线开发者的屈尊,我认为这是不合适的。lodash听起来很酷,但我不明白这是如何回答我同意你们两人的问题的——它并没有真正回答“为什么”。相反,它很快就提供了一个替代方案。因此,我对答案进行了一点编辑。问题不是关于下划线库的功能,而是关于选择这种(有争议/不透明)架构的原因。@c69理解,但lodash的答案也没有涵盖从下划线中删除AMD的原因。因为这个答案是高度保守的,所以我想指出,在较旧的浏览器上使用ES5本身/ES5垫片提供了一个更安全的未来选择。