2011-12-22 6 views
1

Я пытаюсь загрузить underscore.js с require.js, как это:require.js: как загрузить модуль, который определяет имя под другим именем?

require(["libs/underscore-1.2.3.js"], function(_) { 
    ... 
}); 

Но это не работает, потому что underscore.js экспортирует имя модуля: define('underscore', function() { ... }).

Без переименования lib/underscore-1.2.3.js, как я могу загрузить его с помощью require.js?

ответ

2

Хорошо, после того, как некоторая более прибегая к помощи, я нашел: https://github.com/documentcloud/underscore/pull/338#issuecomment-3245213

Где

@dvdotsenko всех AMD погрузчиков позволяет отображение модуля ID частичного пути, как правило, конфигурация называется «путем », так что делать то, что вы хотите:

 
    requirejs.config({ 
     paths: 
      underscore: 'js/libs/underscore-1.2.3.min' 
     } 
    }); 
    require(['underscore'], function() {}); 

Поскольку подчеркивание используются другими модулями более высокого уровня, например, позвоночник, общее название зависимостей необходимо использовать для связи общего dependen cy на подчеркивании, и имеет смысл называть это «подчеркивание» зависимостей. Конфигурация путей предоставляет способ сделать сопоставление конкретному URL-адресу, который вы хотите использовать для этой зависимости.

Это не ответ мой вопрос (то есть, я до сих пор не знаю, как бы я идти о загрузке подчеркивание, если все, что я был URL), но, по крайней мере, это функциональный обходной путь.

2

Хотя это не кажется мне самым идеальным решением, вы можете потребовать свои внешние файлы, а затем потребовать их зарегистрированные имена модулей во внутреннем блоке.

JSFiddle Example

require(
    ['require','http://documentcloud.github.com/underscore/underscore-min.js'], 
    function(require){ 
     require(['underscore'],function(_){ 
      var a = _.intersection([1,2,3],[2,3,4]); 
      document.write("Underscore is available in the closure : " + a); 
     }) 
    } 
) 

Это не может выглядеть красиво, но это может быть рекомендовано шаблоном для загрузки начальных активов таким образом, что они могут быть необходимы интуитивно в зависимых модулях.