RequireJS路径配置说"所有模块都在这个文件中#34;

时间:2016-03-17 22:11:34

标签: javascript requirejs

在RequireJS中,可以为给定模块明确配置路径。例如,您可以为模块foo指定应加载模块bar(应加载文件bar.js):

require.config({
    paths: {
        "foo": "bar"
    }
});

我如何做同样的事情,但对于所有模块?

我尝试使用星号,但它只会为模块*创建一个映射:

require.config({
    paths: {
        "*": "bar"
    }
});

1 个答案:

答案 0 :(得分:1)

根据您的问题和评论

  

TypeScript编译器能够将多个外部模块编译到放置在单个输出文件中的命名AMD模块中。但是,要有效地使用这些模块,必须配置RequireJS,以便它知道在哪里找到它们。

可以应用解决方法。首先,除了所有模块的路径之外,我们不要在config中定义任何模块路径。

require.config({
    paths: {
        "all": "path/to/all/modules"
    },

    deps: { "all" } // This to tell requireJS to load 'all' at initial state.
});

然后加载config / main文件

<script data-main="scripts/main" src="scripts/require.js"></script>

从这个requireJS将只读取define()中的所有modules.js块。它将注册您在js文件中获得的所有模块名称。例如,如果define('myModule', [function(){...}]);中有module.js。您可以直接调用在任何地方加载它而无需为其定义路径。

例如代码中的某些位置。

requirejs(['myModule', function(myModule){
    myModule.doSemething();
});

(注意:是的,这个答案不是试图解决问题的原始点。但只是尝试解决最初的问题。如果有人发现这个答案没用,请随意投票) < / p>