Javascript 使用require.js加载textextext.js插件

Javascript 使用require.js加载textextext.js插件,javascript,jquery,jquery-plugins,requirejs,jquery-textext,Javascript,Jquery,Jquery Plugins,Requirejs,Jquery Textext,我正在尝试加载jquery插件,其中有一个插件。在我的项目中,我使用require.js来加载所有带有依赖项的脚本 与其他脚本一样,我在main.js文件上使用了一个垫片配置: main.js require.config({ shin: { jquery: { exports: '$' }, 'textext': { deps: ['jquery'], exports: '$.fn.textext' }, 'tex

我正在尝试加载jquery插件,其中有一个插件。在我的项目中,我使用require.js来加载所有带有依赖项的脚本

与其他脚本一样,我在
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',
    }
  });
define([
  'jquery',
  'textext',
  'textext_tags',
  ], function($, Textext, TextextTags) {
    // do stuff
  });
在我使用它的页面上,我将其称为如上所述:

文件app.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',
    }
  });
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
在文件
textextext.plugins.tags.js
中,第23行(故障行)有:

因此,使用Firebug检查它时,我意识到Jquery没有加载,因此
$
$是未定义的


我的问题是:为什么require.js的这个模式与同一个项目上的其他jQuery插件(比如jQuery cookie和其他插件)一起工作,而不是与这个jQuery插件一起工作,一个带有子插件的jQuery插件?

正如Vishwanath所说,只有从“shin”改为“shim”才能工作,如上所示:

require.config({
垫片:{
jquery:{
出口:“$”
},

不应该是
shim
而不是
shin
。这可能就是不遵循依赖项的原因,而且textExtTags会在textExt之前加载,而您会遇到该错误。