Требуются загрузочные плагины - PullRequest
13 голосов
/ 17 марта 2011

Я пытаюсь загрузить плагин, используя requirejs, но иногда получаю сообщение об ошибке: «$ .fn is undefined», но если я перезагружаю страницу, ошибка исчезает почти так же, как теперь, когда jquery кэшируется, проблема устранена.Я загружаю свои библиотеки следующим образом:

require(["jquery-1.4", "/script/jquery.autoSuggest.packed.js"], function($) {
   $(function() {
       //code
    });
});

Можете ли вы увидеть, если что-то не так с этой реализацией, которая может вызвать эту ошибку?Требуется, чтобы js добавлялся на страницу следующим образом:

<script type="text/javascript" src="http://website.co.uk/frameworks/requirejs/0.2.4/sharedmodules/require.js">
</script> 
<script type="text/javascript">  requireMap = {
     "jquery-1.4":"http://website.co.uk/sharedmodules/jquery-1.4"
}; 

    require({ baseUrl: 'http://website.co.uk/', paths: requireMap });      
</script>

Это не может быть изменено, так как это часть фреймворка, который я использую.

Есть предложения?

Спасибо!

Ответы [ 3 ]

12 голосов
/ 09 января 2013

Плагин заказа удален. используйте загрузочную прокладку следующим образом

requirejs.config({
   paths: {
        'jquery': 'https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min',
        'bootstrap': '../bootstrap/js/bootstrap.min',
        'select2': 'vendor/select2',
        'jshashtable': 'vendor/jshashtable-2.1',
        'jquery.numberformatter': 'vendor/jquery.numberformatter-1.2.3.min',
        'jq-datepicker': 'vendor/bootstrap-datepicker',
        'jq-datepicker.da': 'vendor/bootstrap-datepicker.da'
    }, 

    // Use shim for plugins that does not support AMD
    shim: {
        'bootstrap': ['jquery'],
        'select2': ['jquery'],
        'jq-datepicker': ['jquery'],
        'jshashtable': ['jquery'],
        'jquery.numberformatter': ['jquery', 'jshashtable']
    },

});

ссылка: http://requirejs.org/docs/api.html#config-shim

8 голосов
/ 18 марта 2011

Вы захотите использовать плагин order .По умолчанию RequireJS загружает скрипты как можно быстрее, и они могут загружаться не по порядку.Однако плагин order будет поддерживать порядок загрузки скриптов.

Если вы используете оптимизатор для оптимизации ваших скриптов, обязательно включите в оптимизированный скрипт как jQuery, так и плагин.

3 голосов
/ 12 марта 2012

Возможно, вы захотите оформить заказ https://github.com/jquery-boilerplate/patterns

У него есть хороший шаблонный код плагина jQuery, который будет работать с RequireJS.

Я думаю, что вам, возможно, придется обновить jQuery до 1.7 до этихшаблоны будут работать для вас.

...