Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js requirejs rails AMD错误“;it中的两个多匿名模块”;_Backbone.js_Ruby On Rails 4_Amd_Requirejs Rails - Fatal编程技术网

Backbone.js requirejs rails AMD错误“;it中的两个多匿名模块”;

Backbone.js requirejs rails AMD错误“;it中的两个多匿名模块”;,backbone.js,ruby-on-rails-4,amd,requirejs-rails,Backbone.js,Ruby On Rails 4,Amd,Requirejs Rails,尝试使用requirejs rails(使用rails 4)预编译我的主干资源。我一直遇到需要js的路障,js抱怨说 Error: Error: application.js has two many anonymous modules in it. 这似乎是一个RequireJS错误。谷歌搜索结果,我不明白 我确实发现,问题在于任何库的头部都有AMD条件,如下面的示例所示。我想这与将自己注册为匿名模块有关。如果我删除这些条件,那么requirejs rails将不再抱怨,我可以编译优化的文件

尝试使用requirejs rails(使用rails 4)预编译我的主干资源。我一直遇到需要js的路障,js抱怨说

Error: Error: application.js has two many anonymous modules in it.
这似乎是一个RequireJS错误。谷歌搜索结果,我不明白

我确实发现,问题在于任何库的头部都有AMD条件,如下面的示例所示。我想这与将自己注册为匿名模块有关。如果我删除这些条件,那么requirejs rails将不再抱怨,我可以编译优化的文件,然后在rails中运行

但是从我所有的外部库中手动删除这些AMD条件是不可持续的

有谁有更好的建议吗?我的requirejs.yml文件已正确设置

注意:我使用的是requirejs rails,因为主代码不适用于rails 4

顺便说一句:我可以使用相同的代码,而无需删除直接调用r.js(而不是requirejs Rails)的非Rails应用程序中的AMD位来优化代码。我不知道为什么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 ) {

值得一提的是,我发现了如何绕过这个特殊问题。问题在于与requirejs rails gem捆绑在一起的r.js版本。当我将位于.bundler/ruby/2.0.0/requirejs-rails-e093125e1d5/bin/中的v2.1.2r.js与位于v2.1.10的版本进行交换时,我不再收到“两个多匿名模块”错误,最终能够构建优化的application.js文件

尽管如此,我最终遇到了更多与requirejs rails操作相关的问题。一看这个项目,你就会发现这个项目存在一些资源问题。对于我的Rails项目,我可能会放弃Requirejs——有人还没有找到一个优雅的解决方案来使用Rails 4资产管道