我在我的开发require.js环境和r.js构建工具之间使用了'mainConfigFile
',就像Require.js multipage example中的设置一样。模块在开发中需要并加载正常,但是当我尝试通过r.js运行相同的配置文件时,它会搜索一个目录更高的模块路径。 (例如。它应该在build / vendor / backbone.js中查找build / backbone.js中的backbone.js的构建版本。)
这是我的r.js构建json配置:
{
baseUrl: "js/lib",
mainConfigFile: 'js/lib/common.js',
dir: 'build',
paths: {
'stripe': 'empty:'
},
modules: [
{
name: "common",
include: [
'underscore',
'backbone',
'backbone.validation',
'vendor/spin',
'vendor/transit',
'globals'
]
},
{
name: 'product',
exclude: [ 'common' ]
}
],
optimize: 'none'
}
这是我的common.js共享配置文件,位于js / lib / common.js
中requirejs.config({
baseUrl: '/js/lib',
paths: {
'config': 'empty:',
'inline': 'empty:',
'stripe': '//js.stripe.com/v1/stripe',
'vendor': '../vendor',
'underscore': '../vendor/underscore',
'backbone': '../vendor/backbone',
'backbone.validation': '../vendor/backbone.validation',
'text': '../vendor/text'
}
});
最后,这是位于js / lib / product.js中的product.js模块,它在开发过程中从data-main加载。
require(['./common'], function() {
require(['./product/main', 'inline']);
});
有趣的问题是当我从每个配置值中删除“../vendor/
”时 - 除了'vendor'属性本身 - r.js构建成功且开发数据主要无法加载正确的文件。当然,我忽略了一些配置设置。