Javascript 全局使用jquery、主干、下划线和requirejs?

Javascript 全局使用jquery、主干、下划线和requirejs?,javascript,jquery,requirejs,Javascript,Jquery,Requirejs,我尝试使用以下代码使用requirejs包含我的自定义js文件 require.config({ waitSeconds: 0, paths: { underscore: 'underscore/underscore', backbone: "backbone/backbone-min", jquery: "jquery/jquery-min", customhandler: "jquery/customhandler"

我尝试使用以下代码使用requirejs包含我的自定义js文件

require.config({
    waitSeconds: 0,
    paths: {
       underscore: 'underscore/underscore',
       backbone: "backbone/backbone-min",
        jquery: "jquery/jquery-min",
        customhandler: "jquery/customhandler"
    },
    shim: {
         underscore: {
           deps: ['underscore'],
           exports: '_'
        }
    }
});
创建了一个单独的文件
customhandler.js
,其中我想使用主干、jquery和下划线

define(['jquery','underscore','backbone'], function($,_,Backbone) {
    //using jquery
    var oldAjax = $.ajax;

    $.ajax = function(options) {
        console.log(options)
         // Do your magic.
         return oldAjax.apply($, arguments);

    }
    //need to use backbone,underscore here
});

但我仍然无法将其加载到我的应用程序中。请告知。

jQuery
已经与AMD兼容,因此看起来您无法以这种方式填充此依赖项

从正式文件:

请记住:仅对非AMD脚本使用垫片配置

作为基本解决方法,您可以返回另一个对象,如下所示:

return { ajax : $.ajax };

或者在需要时使其更智能。

调用
定义的模块不需要使用
垫片。如果将
shim
与调用
define
的模块一起使用,则会得到未定义的行为。因此,这可能是您遇到问题的原因:为
jqueryajaxhandler

删除您的垫片我尝试为jqueryajaxhandler删除垫片,但仍然不起作用。我在下面的回答中指出,为
jqueryajaxhandler
删除垫片是一个问题。这可能不是唯一的问题,但它仍然是一个问题。这绝对是错误的。所以你应该把它去掉。此外,您的编辑还远未完成。“你现在的问题中没有任何内容可以练习你的超控。”路易斯现在更新了我的问题。很抱歉造成混淆。@myconstructure配置中脚本的入口点在哪里?