1

我正在开发一个使用ember-skeleton构建的 Ember.js 项目(大约 0.9.8.x,如果重要的话) 。我最近犯了随意运行的错误,bundle update我的rake-pipeline版本从 0.6.0 跳到了 0.8.0,当我向开发服务器发出请求时出现此错误:

NoMethodError at /
undefined method `invoke' for "Assetfile":String

具体的错误在这里:

~/.rvm/gems/ruby-1.9.3-p125@project/bundler/gems/rake-pipeline-ee992cbcda51/lib/rake-pipeline/middleware.rb:调用中,第 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项目历史几十个提交。回到10 月底,我得到了不同的错误:

TypeError at /
can't convert Fixnum into String

~/.rvm/gems/ruby-1.9.3-p125@project/bundler/gems/rake-pipeline-986129d378a6/lib/rake-pipeline/manifest_entry.rb:9:in `parse'

当我一直跳到2012 年 4 月时,我得到了一个工作版本。所以我的项目恢复了业务,但我很想知道发生了什么。

4

1 回答 1

2

问题是rake-pipeline 现在需要一个 Rake::Pipeline::Project 对象作为参数,而不是字符串。用它替换第三config.ru行使其工作:

use Rake::Pipeline::Middleware, Rake::Pipeline::Project.new('Assetfile')

谢谢,GitHub!

于 2013-01-25T02:01:08.170 回答