当r.js手动工作时,grunt-contrib-requirejs compile会出错

时间:2013-12-30 13:04:48

标签: requirejs gruntjs grunt-contrib-requirejs

我遇到运行requirejs作为编译我的js文件的繁琐任务的问题。当我使用相同的配置文件手动运行它(r.js.cmd -o configfile.js)时,一切似乎都有效。

似乎grunt任务正在加入路径定义,并且无法找到我的lib文件。

>> Error: ENOENT, no such file or directory
>> '/path/to/project/js/lib.js'
>> In module tree:
>>     module
>>       libs/another-lib

路径应为/path/to/project/js/lib/lib.js。我的主js文件(data-main-attribute中的一个)有一个requirejs.config调用,带有正确的路径映射('lib':'lib / lib.js')。之后,我将它们用作启动应用程序的require调用中的参数。

我的requirejs任务配置:

requirejs: {
    compile: {
        options: {
            name: "bootstrap",
            baseUrl: "submodule/js",
            mainConfigFile: "submodule/build.js",
            out: "submodule/js/bootstrap-built.js"
        }
    }
}

grunt requrejs调用和r.js.cmd -o build.js之间的唯一区别应该是grunt任务配置。毕竟他们使用相同的配置文件。我做错了什么或grunt-contrib-requirejs中的路径存在某种问题?

1 个答案:

答案 0 :(得分:-1)

我的问题是requirejs任务选项和mainConfigFile之间的冲突。我想在主项目的子模块中使用相同的配置文件,但是配置了不同的基本URL(子模块/ js / - > js /)。

我还没有找到一种方法来覆盖配置文件中的选项,所以我不得不将它们复制到任务配置中。它不漂亮但至少它现在有效。