Requirejs:jQuery未定义

时间:2013-06-10 05:35:32

标签: javascript jquery requirejs

不知怎的,我总是收到这个错误:

  

未捕获的ReferenceError:未定义jQuery

我的印象是jQuery(通过CDN加载)需要更多时间加载(通过Chrome上的网络标签确认)。我在我的PC上本地运行,这就是为什么CDN调用总是比库更长。但是在加载jQuery之前,是不是需要等待jQuery加载其他库之后呢?

我的boot.js:

(function(){
    requirejs.config({
        baseUrl: '/assets/js/',
        paths: {
            'lib': 'lib/',
            'src': 'src/',
            'jquery': [
                '//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min',
                'lib/jquery-1.9.1.min'
            ],
            'mootools': 'lib/mootools-core-1.4.5',
            'class.mutators': 'lib/Class.Mutators.jQuery'
            //'order': 'assets/js/lib/order',
        },
        shim: {
            'class.mutators': {
                deps: [
                    'mootools'
                ],
                exports: 'classmutators'
            },
            'underscore': {
                    exports: '_'
            }
        },
        waitSeconds: 15
    });

    requirejs([
        'jquery',
        'src/app-require'
    ], function($){
        $(document).ready(function(){
            var App = new $.App($('body'));
        });
    });

})();

我的app-require.js:

define([
    'mootools',
    'class.mutators',
    'src/Tracker',
    'lib/jquery.easing.1.3',
    'lib/nivo/jquery.nivo.slider.pack',
    'lib/isotope/jquery.isotope.min',
    'lib/waypoints.min'
], function() {

var className = 'App';
//--
return $[className] = new Class({
    jQuery: className,

    Implements: [Options, Events],

    options: {},

    //-- init
    //---------------------------------------------
    initialize: function(el, options) {
              ...
    },

            ...
    });
});

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

jQuery没有任何依赖项。你应该在mutator的垫片依赖项中添加它:

  shim: {
            'class.mutators': {
                deps: [
                    'jquery',
                    'mootools'
                ],
                exports: 'classmutators'
            },
            'underscore': {
                    exports: '_'
            }
        },

以下是如何使用shim处理jQuery依赖关系的官方示例:https://github.com/requirejs/example-jquery-shim#how-its-set-up