我在让r.js以我们需要的方式工作时遇到了问题。
我有以下问题:我们有2个域(例如foo.de和bar.de)和不同的环境。根据他们运行的环境和域,他们需要从其原始服务器加载不同的文件。我最初的解决方案是:
// channelDomain and environmentPath get defined above this script
require.config({
paths: {
'fooscript': channelDomain+environmentPath
}
}
在未经优化的浏览器中对此进行测试完全符合,但夜间构建主张:
[Error: Error: The config in mainConfigFile /absolute/path/app/public/js/main.js
cannot be used because it cannot be evaluated correctly while running in the
optimizer. Try only using a config that is also valid JSON, or do not use
mainConfigFile and instead copy the config values needed into a build file or
command line arguments given to the optimizer.
Source error from parsing: /absolute/path/app/public/js/main.js: ReferenceError:
channelDomain is not defined
我尝试过很多事情,但我的想法已经不多了。我尝试在构建文件中执行empty:thing,但这也不起作用。如果有人能指出我正确的方向,我会很高兴。
答案 0 :(得分:2)
在同一文件中使用两个require.config。优化器只会读取第一个,正如James在此处所说https://github.com/jrburke/r.js/issues/270#issuecomment-13112859,优化后它将在浏览器中运行。
所以最后你会在main.js中有这样的东西:
require.config({
//only configurations needed for the transpiler's optimization
});
require.config({
paths: {
'fooscript': channelDomain+environmentPath
}
});