我遇到运行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中的路径存在某种问题?
答案 0 :(得分:-1)
我的问题是requirejs任务选项和mainConfigFile之间的冲突。我想在主项目的子模块中使用相同的配置文件,但是配置了不同的基本URL(子模块/ js / - > js /)。
我还没有找到一种方法来覆盖配置文件中的选项,所以我不得不将它们复制到任务配置中。它不漂亮但至少它现在有效。