Загрузите плагин textext.js с require.js
Я пытаюсь загрузить плагин textext.js jquery, с одним из его плагинов, тегами textext. В моем проекте я использую require.js для загрузки всех сценариев с его зависимостями.
Как и для других скриптов, я использую конфигурацию shim на моем main.js
файл:
main.js
require.config({
shin: {
jquery: {
exports: '$'
},
'textext': {
deps: ['jquery'],
exports: '$.fn.textext'
},
'textext_tags': {
deps: ['jquery', 'textext'],
}
},
paths: {
jquery: 'lib/jquery-min',
textext: 'lib/textext/textext.core',
textext_tags: 'lib/textext/textext.plugin.tags',
}
});
На странице, которую я использую, я называю это так:
файл-app.js
define([
'jquery',
'textext',
'textext_tags',
], function($, Textext, TextextTags) {
// do stuff
});
Код загружается и работает правильно в Firefox, но иногда в Chromium (примерно в 2/3 случаев), при первой загрузке страницы, я получаю следующую ошибку, которая нарушает функционирование страницы.:
TypeError: Cannot set property 'TextExtTags' of undefined
#3 localhost/js/lib/textext/textext.plugin.tags.js:23:27
Внутри файла textext.plugins.tags.js
в строке 23 (строка отказа):
$.fn.textext.TextExtTags = TextExtTags;
Итак, осматривая его с помощью Firebug, я понимаю, что Jquery не загружен, поэтому $
а также $.fn
не определено
У меня вопрос: почему эта схема require.js работает с другими плагинами jQuery в том же проекте (например, jquery cookie и другие), но не с этим, плагином jquery с его подплагинами?
1 ответ
Как сказал Вишванат, только переход от "голени" к "шим" работал, как показано выше:
require.config({
shim: {
jquery: {
exports: '$'
},
...
Спасибо!