Javascript 如何在优化文件之外的requirejs中实例化优化模块?

Javascript 如何在优化文件之外的requirejs中实例化优化模块?,javascript,requirejs,r.js,Javascript,Requirejs,R.js,在我的require.config中,我为我经常使用的几个路径创建了速记: require.config({ paths: { text: 'components/requirejs-text/text', url: 'config/url', List: 'modules/List/main' ... 然后在各个页面上(在单独的脚本文件中),我实例化了一个模块,如下所示: require(['List'], functi

在我的require.config中,我为我经常使用的几个路径创建了速记:

require.config({
    paths: {
        text: 'components/requirejs-text/text',
        url: 'config/url',
        List: 'modules/List/main'
        ...
然后在各个页面上(在单独的脚本文件中),我实例化了一个模块,如下所示:

require(['List'], function(List){ new List; }); 
我的计划是将所有文件优化为一个文件,并按照我的示例中的要求实例化一个模块,但是由于require.config的路径不再相关(因为我现在只有main.build.js)如何实例化我的模块

更新:让我重新措辞:


我正在尝试在优化构建脚本之外实例化一个模块,我该怎么做?

我想,我们有一个名为appInit.js的文件,它确实实例化了我们的应用程序,因此,所有其他模块都应该根据需要实例化,而且从每个module.js实例化模块也不是一个好的做法

考虑应用程序的单个实例,所有其他实例应作为组件、服务等与此应用程序相关

每个开发人员都有自己的编码风格,选择您喜欢的


如果您担心模块的路径,那么在构建之后,不要担心路径只是模块的名称,应该可以工作,但是动态加载或创建的模块将不再工作。

将配置移动到
require.JS
库之后的单独位置(在头部内联或JS文件中)。现在,您可以在将来加载任何模块,并且无论首先加载的是哪一个模块,它们都可以读取配置。

无论您想在哪里包含
列表
模块,只要创建一个指向优化文件的新路径配置即可

require.config({
    paths: {
        'List': 'js/myApp' 
    }
});
require(['List'], function(List) {
    ...
});

路径被视为模块名,合并文件时,这些模块名将保留。当其他代码
需要它们时,您的模块被实例化。但是我如何引用优化的main.build.js之外的特定模块?我不明白?但请记住,我们不需要在构建时更改代码,它将自动为您完成。require('mod',function(mod){//do});即使这在单独的脚本标记中的优化文件之外?不,这将不起作用,bcoz不包括在构建时中,这相当于动态创建的模块。您必须为它们指定路径,它没有告诉我如何在构建脚本之外使用其中一个模块……问题是我不想引发对已经加载到main-build.js中的模块的请求如果您试图从另一个单独的模块请求构建文件中的模块,那么您可能会遇到争用条件问题。一个常见的场景是在构建文件中使用jQuery,然后在单独的构建文件中再次需要它。如果主文件的加载时间较长,则会出现故障。在那个场景中,我创建了一个公共库(jQuery、插件等)的构建文件。在大多数情况下,异步加载3-4个构建文件仍然是一个性能优势。这应该加载js/myApp.js并返回列表模块,只要该文件中存在define('List',…)。谢谢,这就是我想要的答案!