优化多个requirejsconfiguration文件

我有与r.js优化问题

我有一个有多个requirejsconfiguration文件的项目

+ 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根本无法在构build一个bundle时处理多个requirejs.config调用。 我从来没有见过任何文件或问题报告,或与此相矛盾的工作示例。 (RequireJS会让你多次调用requirejs.config ,并结合在运行时传递的configuration但这与r.js处理多个调用requirejs.config

你必须把你所有的requirejs.config调用合并成一个单独的调用,你可以使用mainConfigFile指向r.js

我已经在我的机器上重新创build了安装程序,并得到了相同的错误。 如果我将app/main.js的configuration修改为以下内容,则可以构build该包:

 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' } }); 

(还要注意,上面的../app/可以简化为.而不是../app/ 。)