2016-05-10 6 views
-2

Я пытаюсь загрузить много наших JS-зависимостей с помощью requirejs. У нас возникает проблема с зависимостью, которую KnockoutSortable имеет на jquery-ui \ sortable.Нокаут и jquery-ui sortable Requirejs Конфигурация с использованием CDN

Я не могу получить sortable.js, чтобы прийти из cdn загрузки jquery-ui, она удовлетворяет его зависимости, загрузив из копии на моем сайте. Я попытался Призонная шайба

'knockoutSortable' : { 
    deps: ['jqueryUi'] 
}, 

но не заставил Нокаут использовать CDN скачал версию JQuery-интерфейса

Наша конфигурация выглядит следующим образом:

var require = { 
baseUrl: '/Scripts', 
paths: { 
    jquery: ['//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min', 'lib/jquery-1.9.1.min'], 
    jqueryUi: ['//ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/jquery-ui.min', 'lib/jquery-ui-1.11.3.min'],   
    knockout: ['//cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min','lib/knockout-3.3.0.min'], 
    knockoutMapping: ['//cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.4.1/knockout.mapping.min','lib/knockout.mapping-latest.min'], 
    knockoutValidation: ['//cdnjs.cloudflare.com/ajax/libs/knockout-validation/2.0.2/knockout.validation.min','lib/knockout.validation.min'], 
    knockoutPostBox: ['//cdnjs.cloudflare.com/ajax/libs/knockout-postbox/0.5.1/knockout-postbox.min', 'lib/knockout-postbox.min'], 
    knockoutSortable: ['//cdnjs.cloudflare.com/ajax/libs/knockout-sortable/0.11.0/knockout-sortable.min','lib/knockout-sortable.min'], 
    ... 
shim: { 
    'jquery': { 
     exports: '$' 
    }, 
    'knockoutSortable' : { 
    deps: ['jqueryUi'] 
},... 
+0

С Jquery-интерфейса и нокаутировать и AMD совместимы, вы не можете использовать конфигурацию регулировочной шайбы необходимо использовать конфигурацию карты. См. [Link] (http://stackoverflow.com/questions/19216580/requirejs-paths-vs-map) – smayse

ответ

2

С Jquery-ш и выбирая оба совместимых с AMD, вы не можете использовать конфигурацию прокладки, вам нужно использовать конфигурацию карты вместо этого, чтобы отобразить модули jquery-ui обратно на путь jqueryUi.

См link

Мы решили эту проблему, добавив эту конфигурацию карты в require.config

map : { 
    '*': { 
     'jquery-ui/core': 'jqueryUi', 
     'jquery-ui/sortable': 'jqueryUi', 
     'jquery-ui/draggable': 'jqueryUi', 
     'jquery-ui/mouse': 'jqueryUi', 
     'jquery-ui/widget': 'jqueryUi' 
    } 
}