Node.js 优化多个requirejs配置文件

Node.js 优化多个requirejs配置文件,node.js,requirejs,r.js,requirejs-optimizer,Node.js,Requirejs,R.js,Requirejs Optimizer,我对r.js的优化有一个问题 我有一个项目有多个requirejs配置文件 + app - module1 * main.js * foo.js * bar.js - main.js + build.js 每个main.js都有自己的包 main.js代码是: requirejs.config({ 'baseUrl': '../app/', 'paths': { 'module1' : 'm

我对r.js的优化有一个问题

我有一个项目有多个requirejs配置文件

+ app
    - module1    
        * main.js
        * foo.js
        * bar.js
    - main.js
+ build.js
每个main.js都有自己的包

main.js代码是:

requirejs.config({
    'baseUrl': '../app/',
    'paths': {
        'module1' : 'module1/main'
    }
});
define(['module1'],function(){});
module1/main.js代码如下:

requirejs.config({
    'paths': {
        'foo' : 'module1/foo',
        'bar' : 'module1/bar'
    }
});
define(['foo','bar'],function(){});
build.js文件如下所示:

({
    mainConfigFile: 'app/main.js',
    baseUrl: 'app',
    name: 'main',
    out: 'dist/main.js',
})
当我执行
$r.js-o build.js
时,它返回一个错误

Tracing dependencies for: main
Error: ENOENT: no such file or directory, open 'D:\Project\Test\app\foo.js'
In module tree:
    main
      module1

Error: Error: ENOENT: no such file or directory, open 'D:\Project\Test\app\foo.js'
In module tree:
    main
      module1

    at Error (native)

据我所知,
r.js
在构建捆绑包时无法处理多个
requirejs.config
调用。
我从未见过任何与此相矛盾的文档或问题报告,或工作示例。(RequireJS将允许您多次调用
RequireJS.config
,并组合运行时传递的配置,但这与让
r.js
处理对
RequireJS.config
的多次调用不同

您必须将对
requirejs.config
的所有调用合并为一个调用,并将
r.js
指向
maincigfile

我已在我的计算机上重新创建了您的设置,并收到了与您相同的错误。如果我将
app/main.js
中的配置修改为以下内容,则我可以构建捆绑包:

requirejs.config({
    'baseUrl': '../app/',
    'paths': {
        'module1' : 'module1/main',
        'foo' : 'module1/foo',
        'bar' : 'module1/bar'
    }
});
只是为了好玩,我还尝试了以下不起作用的

requirejs.config({
    'baseUrl': '../app/',
    'paths': {
        'module1' : 'module1/main'
    }
});
requirejs.config({
    'paths': {
        'foo' : 'module1/foo',
        'bar' : 'module1/bar'
    }
});
(还要注意,上面的
baseUrl
可以简化为
,而不是
。/app/