Загрузите плагин 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: '$'
    },
  ...

Спасибо!

Другие вопросы по тегам