我在require-config.js中配置了一些路径,如下所示:
var require = {
baseUrl: '/javascript',
paths: {
'jquery': 'jquery/jquery-1.8.1.min'
// etc. -- several paths to vendor files here
},
}
我正在努力让优化工作进行部署。 docs说我应该有一个看起来像这样的build.js:
({
baseUrl: 'javascript',
paths: {
'jquery': 'jquery/jquery-1.8.1.min'
},
name: 'main',
out: 'main-build.js'
})
有没有办法让优化器读取我的配置文件而不是(或除了)build.js?如果它们发生变化,我不希望手动保持两个文件中配置的路径相同。
我试图只运行node r.js -o path/to/require-config.js
,但它引发了错误,“格式错误:SyntaxError:Unexpected token var”
编辑:为了澄清,我的require-config.js文件只是配置,而不是我的主模块。我做了这个,所以我可以使用相同的配置,但在单元测试时加载一个不同的主模块。
答案 0 :(得分:11)
您需要调整配置选项的定义方式。取from the RequireJS documentation:
在优化程序的1.0.5+版本中,mainConfigFile选项可用于指定运行时配置的位置。如果使用主JS文件的路径指定,第一个requirejs({}),requirejs.config({}),require({})或require.config({})将在该文件中找到解析并用作传递给优化器的配置选项的一部分:
所以基本上你可以将你的r.js
构建文件指向你的配置选项,这些选项也将与浏览器共享。
答案 1 :(得分:1)
供其他人参考:
https://github.com/jrburke/r.js/blob/master/build/example.build.js
构建设置(这里不需要重复你的config.js lib包含):
baseUrl: 'app',
name: 'assets/js/lib/almond', // or require
// Read config and then also build it into the app
mainConfigFile: 'app/config.js',
include: ['config'],
// Needed for almond (and does no harm for require)
wrap: true,