9

我在 require-config.js 中配置了一些路径,如下所示:

var require = {
    baseUrl: '/javascript',
    paths: {
        'jquery': 'jquery/jquery-1.8.1.min'
        // etc. -- several paths to vendor files here
    },
}

我正在尝试使优化适用于部署。文档说我应该有一个看起来像这样的 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 文件只是配置,而不是我的主模块。我这样做是为了在单元测试时可以使用相同的配置但加载不同的主模块。

4

2 回答 2

11

您需要调整配置选项的定义方式。取自RequireJS文档

在优化器的 1.0.5+ 版本中,mainConfigFile 选项可用于指定运行时配置的位置。如果使用主 JS 文件的路径指定,则在该文件中找到的第一个 requirejs({})、requirejs.config({})、require({}) 或 require.config({}) 将被解析并用作传递给优化器的配置选项的一部分:

所以基本上你可以将你的r.js构建文件指向你的配置选项,这些选项也将与浏览器共享。

您将需要使用mainConfigFile 选项

于 2013-01-03T22:59:02.887 回答
1

供他人参考:

https://github.com/jrburke/r.js/blob/master/build/example.build.js

构建设置(无需在此处重复您的 config.js 库包含):

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,
于 2013-07-30T19:51:22.063 回答