2012-01-25 6 views
65

1.3.0 - 11 января 2012 г. Удалена поддержка AMD (RequireJS) под Underscore. Если вы хотите использовать Underscore с RequireJS, вы можете загрузить его как обычный сценарий, обернуть или исправить свою копию или загрузить раздвоенную версию.Почему Underscore.js удалил поддержку AMD?

Почему они это сделали? Кто-нибудь знает? Поскольку они добавили его всего несколько месяцев назад (в октябре), а AMD (определение асинхронного модуля) - , то будет намного превосходить модули CommonJS.

Обновление: по состоянию на декабрь 2013 года это было поддержано снова.

+2

Я надеюсь, что вы можете создать ссылку на пост, почты обсуждение или щебет комментарий с мотивацией для этого акта или разъяснений со стороны разработчиков. – c69

+1

* Определение асинхронного модуля * не * Усовершенствованный модуль-загрузчик *, см. Https://github.com/amdjs/amdjs-api/wiki/AMD –

+1

, самый выдающийся голос AMD, как говорят, намного превосходит commonjs/и т. д. является создателем самого require.js. я менее склонен вслепую взглянуть на мнение создателя конкретного метода, чем я должен слушать сообщество людей, и до сих пор жюри все еще не работает. –

ответ

56

Jeremy дал свои рассуждения в comments of the commit:

Yep. Не поддерживать конкретный загрузчик скриптов, безусловно, упростит работу всех.

Прошу прощения за слияние поддержки в первую очередь.

Он также tweeted немного больше об изменении (ссылка с a later comment):

... потому что поддержка AMD нарушает регулярные Подчеркивание встраивает на страницах, которые также случаются использовать Require.js ...

+2

@SalmanPK Это изменение просто означает, что подчеркивание теперь является агрессором-загрузчиком. Таким образом, вы можете настроить его для любого загрузчика, в котором вы нуждаетесь. Как это плохо? –

+3

Поскольку теперь мы не можем использовать его с любым совместимым с AMD загрузчиком (RequireJS, Almond.js, curl.js, lsjs, bdLoad, Yabble и т. Д.) Без дополнительной настройки или ручного редактирования. –

+5

@SalmanPK Используйте вилку, предназначенную для Underscore для AMD, а затем: https://github.com/amdjs/underscore. –

30

Разработчики Underscore полагали, что поддержка AMD будет поддерживать поддержку сценариев, не поддерживающих AMD. На самом деле это не так, поскольку вы можете иметь сценарий, который поддерживает AMD, но также работает как на развертывании без AMD.

Замена на замену заменяется на: Lo-Dash. Который наряду с другими функциями, не входящими в Underscore, включает AMD/non-AMD duality.

+17

Я думаю, что этот ответ недооценен. Тем не менее, я чувствую, что тон этого ответа (намеренный или нет) снисходит к разработчикам подчёркивания, что, по-моему, не подходит. –

+0

lodash звучит круто, но я не вижу, как это отвечает на вопрос –

+0

Я согласен с вами обоими - на самом деле он не отвечает «почему». Вместо этого он быстро дает альтернативу. Поэтому я редактирую Ответ на этот вопрос немного –

1

ES5-shim предоставляет множество функций, таких как подчеркивание и lodash (array.forEach(), array.map() и т. Д.).

ES5-shim изначально поддерживает AMD, в отличие от подчеркивания и lodash, не добавляет дополнительных копий вещей, которые, возможно, уже предоставляет ваш браузер. Скорее он добавляет собственные функции ES5 к старым браузерам.

Когда IE8 и другие старые браузеры вымирают, вы можете просто удалить зависимость ES5-shim без необходимости использовать код порта, как если бы вы использовали lodash или подчеркивание.

+2

вопрос был не об особенностях подчёркивания библиотеки, а о _reasons_ такого (спорного/непрозрачный) архитектурного выбора. – c69

+0

@ c69 Понял, но ответ lodash также не охватывает причины удаления AMD из подчеркивания. Поскольку этот ответ очень умерен, я подумал, что использование самой ES5/ES5 для старых браузеров представляет собой более безопасную в будущем альтернативу. – mikemaccana

10

Я почувствовал необходимость добавить к этому довольно старому вопросу.

Оба Backbone и Подчеркивание теперь поддерживают AMD:

  1. Underscore commit
  2. Backbone Commit

Дискуссии (хотя и системообразующих является немного озадачивает, поскольку есть явное несоответствие между тоном обсуждение и фактический результат):

  1. Underscore Issue
  2. Backbone Issue
+0

o, это хорошая новость! – c69

+0

@ c69 Я обновил название, надеюсь, вы не против. – ZenMaster

+0

Как раз вовремя, спасибо! :) –

 Смежные вопросы

  • Нет связанных вопросов^_^