Javascript 使用require.js加载textextext.js插件
我正在尝试加载jquery插件,其中有一个插件。在我的项目中,我使用require.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
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之前加载,而您会遇到该错误。