web-dev-qa-db-ja.com

Underscore.jsがAMDのサポートを削除したのはなぜですか?

1.3.0 — 2012年1月11日UnderscoreからAMD(RequireJS)サポートを削除しました。 UnderscoreをRequireJSで使用したい場合は、通常のスクリプトとして読み込むか、コピーをラップまたはパッチするか、分岐したバージョンをダウンロードできます。

なぜ彼らはそれをやったのですか?誰か知っている?ほんの数か月前(10月)に追加されたため、AMD(非同期モジュール定義)はsaidであり、CommonJSモジュールよりもはるかに優れているためです。

更新:2013年12月現在、これは再びサポートされています。

65
c69

ジェレミー は、 コミットのコメント

うん。特定のスクリプトローダーをサポートしないと、すべてのが適切に機能しやすくなります。

そもそもサポートを統合したことをおaびします。

彼はまた、変更についてもう少し ツイート しました( 後のコメント からのリンク):

…AMDのサポートにより、たまたまRequire.jsを使用しているページへの通常のアンダースコア埋め込みが壊れているためです…

56

Underscoreの開発者は、AMDをサポートすると、AMDに対応していないスクリプトのサポートが中断されると考えていました。 (AMD対応であるが、AMD以外の展開でもそのまま動作するスクリプトを持つことができるため、実際にはそうではありません。

現在、アンダースコアのドロップイン置換があります: Lo-Dash 。これには、アンダースコアにはない他の機能とともに、AMD /非AMDの二重性が含まれます。

29

このかなり古い質問に追加する必要があると感じました。

バックボーンとアンダースコアの両方がAMDをサポートするようになりました

  1. アンダースコアコミット
  2. バックボーンコミット

議論(ただし、Backboneの議論は、議論のトーンと実際の結果との間に明確な矛盾があるため、少し不可解です):

  1. アンダースコアの問題
  2. バックボーンの問題
10
ZenMaster

ES5-shim は、アンダースコアおよびlodashと同じ機能の多くを提供します(array.forEach()、array.map()など)。

ES5-shimはAMDをネイティブでサポートは、アンダースコアやlodashとは異なり、ブラウザーがおそらく既に提供しているものの余分なコピーを追加しません。むしろ、ネイティブのES5機能を古いブラウザーに追加します。

IE8やその他の古いブラウザーが機能しなくなった場合、lodashやアンダースコアの場合のようにコードを移植することなく、ES5-shim依存関係を単純に削除できます。

1
mikemaccana