RequireJS和jQuery插件

时间:2013-12-04 00:10:44

标签: javascript jquery jquery-plugins requirejs

我从RequireJS开始,我遇到了jquery插件加载的问题。基本上,当插件加载时,它的上下文中没有jQuery,尽管我在我的配置中做了一个shim来解释它。 从我已经看到的,似乎是加载没有AMD定义的插件的正确方法,我不明白为什么它在这种情况下不起作用。

这是我的代码:

require.config({
    paths: {
        "angular-mocks": "lib/angular-mocks/angular-mocks",
        "angular-route": "lib/angular-route/angular-route",
        "angular": "lib/angular/angular",
        "angular-scenario": "lib/angular-scenario/angular-scenario",
        "jquery": "lib/jquery/jquery",
        "bootstrap": "lib/bootstrap/docs/assets/js/bootstrap",
        "requirejs-text": "lib/requirejs-text/text",
        "less" : "lib/less/dist/less-1.4.2"
    },
    baseUrl: '/static/js',
    shim: {
        'angular' : {'exports' : 'angular'},
        'angularRoute': ['angular'],
        'angularMocks': {
            deps:['angular'],
            'exports':'angular.mock'
        },
        "bootstrap": ['jquery']
    },
    priority: [
        "angular"
    ],
    urlArgs: 'v=0.1'
});


require(['jquery', 'bootstrap'], function($){
    console.log($);
});

当我执行console.log时,我可以访问jQuery,但是我有关于引导程序加载的错误:Uncaught TypeError: undefined is not a function

1 个答案:

答案 0 :(得分:4)

我正在使用Django Debug Toolbar与require并行,看起来它正在加载它自己的jQuery版本,搞乱了脚本加载的顺序。

我暂时删除了工具栏,它正在运行!