我对 r 的优化有问题.js
我有一个项目有多个requirejs配置文件
+ app
- module1
* main.js
* foo.js
* bar.js
- main.js
+ build.js
每个主.js都有自我包
主.js代码为:
requirejs.config({
'baseUrl': '../app/',
'paths': {
'module1' : 'module1/main'
}
});
define(['module1'],function(){});
模块 1/main.js 代码如下:
requirejs.config({
'paths': {
'foo' : 'module1/foo',
'bar' : 'module1/bar'
}
});
define(['foo','bar'],function(){});
和构建.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:ProjectTestappfoo.js'
In module tree:
main
module1
Error: Error: ENOENT: no such file or directory, open 'D:ProjectTestappfoo.js'
In module tree:
main
module1
at Error (native)
据我所知,r.js
在 构建捆绑包时根本无法处理多个requirejs.config
调用。我从未见过与此相矛盾的任何文档或问题报告或工作示例。(RequireJS将允许您多次调用requirejs.config
,并组合在运行时传递的配置,但这与r.js
处理多个调用requirejs.config
不同。
您必须将所有要requirejs.config
的呼叫合并为一个r.js
指向的呼叫,并使用mainConfigFile
。
我已经在我的机器上重新创建了您的设置,并遇到了与您相同的错误。如果我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/
。