Question Pourquoi Underscore.js a-t-il supprimé le support pour AMD?


1.3.0 - 11 janvier 2012 Suppression de la prise en charge d'AMD (RequireJS) par Underscore. Si vous souhaitez utiliser Underscore avec RequireJS, vous pouvez le charger en tant que script normal, envelopper ou patcher votre copie ou télécharger une version fourchue.

Pourquoi l'ont-ils fait? Est-ce que quelqu'un sait? Parce qu'ils l'ont ajouté il y a seulement quelques mois (en octobre), et AMD (définition de module asynchrone) est m'a dit être bien supérieur aux modules CommonJS.

Mise à jour: À partir de décembre 2013, cela a encore été pris en charge.


65
2018-01-25 20:06


origine


Réponses:


Jeremy a donné son raisonnement dans le commentaires du commit:

Oui. Ne pas prendre en charge un chargeur de script particulier facilitera certainement tout d'entre eux pour travailler correctement.

Je m'excuse d'avoir fusionné le support en premier lieu.

Il a aussi tweeté un peu plus sur le changement (lien de un commentaire ultérieur):

... car le support AMD est en train de briser les incorporations Underscore régulières sur les pages qui utilisent également Require.js ...


56
2018-01-25 20:31



Les développeurs de Underscore ont pensé que le fait d’avoir un support AMD casserait le support des scripts non compatibles avec AMD. Ce n'est en fait pas le cas, car vous pouvez Avoir un script à la fois compatible AMD mais qui fonctionne également sur un déploiement non AMD.

Il y a maintenant un remplaçant pour Underscore: Lo-Dash. Qui, avec d'autres fonctionnalités qui ne figurent pas dans Underscore, inclut la dualité AMD / non-AMD.


30
2017-07-22 00:05



J'ai ressenti le besoin d'ajouter à cette question assez ancienne.

Backbone et Underscore supportent désormais AMD:

  1. Underscore commettre
  2. Backbone Commit

Les discussions (même si celle de Backbone est un peu déroutante car il y a un écart évident entre le ton de la discussion et le résultat réel):

  1. Question inférieure
  2. Problème de colonne vertébrale

10
2017-12-18 02:40



ES5-cale fournit plusieurs des mêmes fonctionnalités que le soulignement et lodash (array.forEach (), array.map (), etc.).

ES5-shim supporte nativement AMD, contrairement au soulignement et au lodash, n’ajoute pas de copies supplémentaires des éléments fournis par votre navigateur. Au contraire, il ajoute des fonctionnalités ES5 natives aux navigateurs plus anciens.

Lorsque IE8 et d'autres anciens navigateurs disparaissent, vous pouvez simplement supprimer la dépendance ES5-shim sans avoir à porter le code comme vous le feriez avec lodash ou underscore.


1
2018-01-16 15:23