尝试使用 requirejs-rails(使用 Rails 4)预编译我的 Backbone 资产。我一直遇到 require-js 抱怨的障碍
Error: Error: application.js has two many anonymous modules in it.
这似乎是一个 RequireJS 错误。谷歌搜索发现这个 Github issue,我不明白。
我确实发现问题出在任何以 AMD 条件为开头的库中,如下例所示。我想这与将自己注册为匿名模块有关。如果我删除这些条件,则 requirejs-rails 不再抱怨,我可以编译优化的文件,然后在 Rails 中工作。
但是从我所有的外部库中手动删除这些 AMD 条件是不可持续的。
有人有更好的建议吗?我的requirejs.yml文件设置正确。
注意:我使用的是 requirejs-rails 的这个分支,因为主要代码不适用于 Rails 4。
顺便说一句:我可以使用相同的代码,而无需删除非 Rails 应用程序中的 AMD 位,直接调用 r.js(而不是 requirejs-rails)来优化代码。我不确定为什么 requirejs-rails 的优化会在 r.js 没有出现时触发此错误。我认为 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 ) {