我正在开发一个使用ember-skeleton构建的Ember.js项目(大约0.9.8.x,如果重要的话)。我最近错误地运行bundle update
并且我的rake-pipeline版本从0.6.0跃升到0.8.0,当我向开发服务器发出请求时出现此错误:
> /年的NoMethodError undefined方法`invoke'代表“Assetfile”:String
具体错误来自:
〜/ .rvm / gems / ruby-1.9.3-p125 @ project / bundler / gems / rake-pipeline -ee992cbcda51 / lib / rake-pipeline / middleware.rb:in call,line 32
但我猜它真正的开始是config.ru
的前几行:
require 'rake-pipeline'
require 'rake-pipeline/middleware'
use Rake::Pipeline::Middleware, 'Assetfile'
堆栈跟踪似乎根本不会触及我的代码;事实上,如果我正确理解了这个错误,它甚至不会触及我的Assetfile
。
这是一个错误,还是在rake-pipeline中做了一些改变?降级rake-pipeline会更容易(如果是,到哪里?)或者我可以在config.ru
中修复哪些内容?
ETA:我在rake-pipeline
项目历史中一次又一次地提交了几十个提交。回到the end of October,我得到了不同的错误:
> / _的TypeError 无法将Fixnum转换为字符串〜/ .rvm / gems / ruby-1.9.3-p125 @ project / bundler / gems / rake-pipeline-986129d378a6 / lib / rake-pipeline / manifest_entry.rb:9:in`parse'
当我跳all the way back to April 2012时,我得到一个正常工作的版本。所以我的项目重新开始了,但我很想知道是什么爆炸了。
答案 0 :(得分:2)
问题在于rake-pipeline now expects a Rake::Pipeline::Project object as an argument, not a string.用config.ru
取代use Rake::Pipeline::Middleware, Rake::Pipeline::Project.new('Assetfile')
的第三行使其有效:
{{1}}
谢谢,GitHub!