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 模块的值。这里没有魔法:依赖项 中列出的每个模块都被 传递给回调,并且它的传递顺序与它在依赖项中出现的顺序相同。假设您不需要 viewportSizeisoTopFilter 的值,您可以这样做:

define(['jquery','pageTop','categoryJS','viewportSize','isoTopFilter'],
       function($, pageTop, categoryJS)

此外,

  • jQuery 调用 define 所以你不能为它设置 shim。 (它很可能会被忽略。)您应该删除为其设置的 shim

    与您自己的模块相同。如果你调用define并想设置依赖列表,将依赖传递给define,不要为这些模块设置shimshim 仅适用于不调用 define.

  • 的代码
  • jQuery 将其模块名称硬编码为 jquery 因此您必须将其称为 jquery 全小写。 (更多详细信息 here。)更改您的 paths,以便您在那里有 jquery 而不是 jQuery