requirejs重复路径条目不起作用

时间:2014-04-10 19:44:03

标签: javascript requirejs

我有以下代码作为研究问题的示例。在此代码" js1和js2加载"永远不会被调用,也没有错误。我试图调试以记录requirejs中的任何错误,但找不到根本原因。

         require.config({
            paths: {
                jQuery : "jquery",
                underScore : "underscore-min",
                backBone : "backbone-min",
                js1 : "js",
                js2: "js"
            },
            shim: {
                'jQuery': {
                    exports: '$'
                },
                'underScore': {
                    exports: '_'
                },
                'backBone': {
                    deps: ['underScore', 'jQuery'],
                    exports: 'Backbone'
                }
            },
            waitSeconds: 0
        });

    require(["jQuery"], function(){
            require(["underScore"], function(){
                require(["backBone"], function(){
                        require(["js1","js2"], function(){
                            console.log('js1 and js2 loaded');

                        });

                });
            });
        });

1 个答案:

答案 0 :(得分:2)

您没有收到任何错误,因为您已设置waitSeconds: 0,这会禁用RequireJS'超时。请参阅documentation

使用paths来完成这项工作。为了能够以两个不同的名称加载相同的实际模块,您需要使用map

map: {
    "*": {
        js2: "js1"
    }
}

请注意,这不会创建模块的两个实例。如果您比较需要js1js2时获得的模块对象,您将看到它们是同一个对象。如果你想要做的是获得一个对象的多个实例,你应该设计你的代码用于这种用法。