尝试使用requirejs-rails(使用Rails 4)预编译我的Backbone资产。我一直在打一个障碍,需要-js抱怨requirejs-rails AMD错误“其中有很多匿名模块”
Error: Error: application.js has two many anonymous modules in it.
这似乎是一个RequireJS错误。谷歌搜索发现this Github issue,我不明白。
我确实发现问题在于AMD条件如下的任何库。我想这与将自己注册为匿名模块有关。如果我删除这些条件,那么requirejs-rails不会再抱怨,我可以编译优化文件,然后在Rails中运行。
但是从我的所有外部库手动删除这些AMD条件是不可持续的。
任何人有更好的建议吗?我的requirejs.yml文件已正确设置。
注意:我使用的requirejs护栏this fork由于主代码不使用Rails 4
作为一个手边的工作:我能够使用相同的代码而不删除非Rails应用程序中的AMD位直接调用r.js(而不是requirejs-rails)来优化代码。我不确定为什么在r.js没有的时候,requirejs-rails的优化会跳出这个错误。我认为requirejs-rails在底下调用r.js?是什么原因造成的错误
例子:
(function (root, doc, factory) {
if (typeof define === "function" && define.amd) {
// AMD. Register as an anonymous module.
define([ "jquery" ], function ($) {
factory($, root, doc);
return $.mobile;
});
} else {
// Browser globals
factory(root.jQuery, root, doc);
}
}(this, document, function (jQuery, window, document, undefined) {