jQuery Require js 的依赖错误
jQuery dependency error with Require js
我面临加载 JQuery 依赖脚本与 Require Js
我有 Jquery 插件、jQuery 库和 2 个模块 js
资产 > js > 供应商 > jQuery 图书馆,
资产 > js > apps.js, pageTop.js, categoryJS.js
我的apps.js:
require.config({
'baseUrl':'assets/js',
'paths':{
'jQuery':'vendor/jquery-1.11.2.min',
'viewportSize':'viewportSize-min',
'isoTopFilter':'isotope.pkgd.min',
'categoryJS' :'categoryJS'
},
shim:{
'jQuery': {
'exports':'$'
},
'viewportSize' :{
deps:['jQuery']
},
'isoTopFilter':{
deps:['jQuery']
},
'pageTop':{
deps:['jQuery']
},
'categoryJS':{
deps:['jQuery']
}
}
});//require.config
define(['jQuery','viewportSize','isoTopFilter','pageTop','categoryJS'], function($, pageTop, categoryJS) {
$(function() {
pageTop.alertProduct();
categoryJS.categorySlider();
});
});
和我的pageTop.js
define([],function( ){
return {
alertProduct: function(){
alert('I am module2');
return true;
}
}
});
我的categoryJs.js
define([],function( ){
return {
categorySlider: function(){
alert('I am module2');
return true;
}
}
});
脚本未加载,出现错误
Uncaught TypeError: Cannot read property 'alertProduct' of undefined
谁能帮帮我,我已经试过了
你有:
define(['jQuery','viewportSize','isoTopFilter','pageTop','categoryJS'],
function($, pageTop, categoryJS)
查看依赖项列表和参数列表。 pageTop
是第二个参数,因此它将获得 viewportSize
模块的值。这里没有魔法:依赖项 中列出的每个模块都被 传递给回调,并且它的传递顺序与它在依赖项中出现的顺序相同。假设您不需要 viewportSize
和 isoTopFilter
的值,您可以这样做:
define(['jquery','pageTop','categoryJS','viewportSize','isoTopFilter'],
function($, pageTop, categoryJS)
此外,
jQuery 调用 define
所以你不能为它设置 shim
。 (它很可能会被忽略。)您应该删除为其设置的 shim
。
与您自己的模块相同。如果你调用define
并想设置依赖列表,将依赖传递给define
,不要为这些模块设置shim
。 shim
仅适用于不调用 define
.
的代码
jQuery 将其模块名称硬编码为 jquery
因此您必须将其称为 jquery
全小写。 (更多详细信息 here。)更改您的 paths
,以便您在那里有 jquery
而不是 jQuery
。
我面临加载 JQuery 依赖脚本与 Require Js
我有 Jquery 插件、jQuery 库和 2 个模块 js
资产 > js > 供应商 > jQuery 图书馆, 资产 > js > apps.js, pageTop.js, categoryJS.js
我的apps.js:
require.config({
'baseUrl':'assets/js',
'paths':{
'jQuery':'vendor/jquery-1.11.2.min',
'viewportSize':'viewportSize-min',
'isoTopFilter':'isotope.pkgd.min',
'categoryJS' :'categoryJS'
},
shim:{
'jQuery': {
'exports':'$'
},
'viewportSize' :{
deps:['jQuery']
},
'isoTopFilter':{
deps:['jQuery']
},
'pageTop':{
deps:['jQuery']
},
'categoryJS':{
deps:['jQuery']
}
}
});//require.config
define(['jQuery','viewportSize','isoTopFilter','pageTop','categoryJS'], function($, pageTop, categoryJS) {
$(function() {
pageTop.alertProduct();
categoryJS.categorySlider();
});
});
和我的pageTop.js
define([],function( ){
return {
alertProduct: function(){
alert('I am module2');
return true;
}
}
});
我的categoryJs.js
define([],function( ){
return {
categorySlider: function(){
alert('I am module2');
return true;
}
}
});
脚本未加载,出现错误
Uncaught TypeError: Cannot read property 'alertProduct' of undefined
谁能帮帮我,我已经试过了
你有:
define(['jQuery','viewportSize','isoTopFilter','pageTop','categoryJS'],
function($, pageTop, categoryJS)
查看依赖项列表和参数列表。 pageTop
是第二个参数,因此它将获得 viewportSize
模块的值。这里没有魔法:依赖项 中列出的每个模块都被 传递给回调,并且它的传递顺序与它在依赖项中出现的顺序相同。假设您不需要 viewportSize
和 isoTopFilter
的值,您可以这样做:
define(['jquery','pageTop','categoryJS','viewportSize','isoTopFilter'],
function($, pageTop, categoryJS)
此外,
jQuery 调用
define
所以你不能为它设置shim
。 (它很可能会被忽略。)您应该删除为其设置的shim
。与您自己的模块相同。如果你调用
define
并想设置依赖列表,将依赖传递给define
,不要为这些模块设置shim
。shim
仅适用于不调用define
. 的代码
jQuery 将其模块名称硬编码为
jquery
因此您必须将其称为jquery
全小写。 (更多详细信息 here。)更改您的paths
,以便您在那里有jquery
而不是jQuery
。