运行compass watch时参数数量不正确

12

当我运行"compass watch"时,我收到了这个错误:

LoadError on line ["54"] of /usr/local/lib/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb: cannot load such file -- susy
Run with --trace to see the full backtrace
我用以下方法成功修复了它:
sudo gem update
sudo gem install susy
当我再次运行 Compass 时,生成了 CSS 文件并出现了一个新错误:
>>> Compass is watching for changes. Press Ctrl-C to Stop.
    write css/ie10_and_higher.css
    write css/ie9.css
    write css/style.css
D, [2015-07-31T10:36:12.805795 #5675] DEBUG -- : Celluloid 0.17.0 is running in BACKPORTED mode. [ http://git.io/vJf3J ]
ArgumentError on line ["48"] of /var/lib/gems/2.1.0/gems/celluloid-0.17.0/lib/celluloid/calls.rb: wrong number of arguments (2 for 1)
Run with --trace to see the full backtrace

现在我在 Google 上找不到任何解决方案。


3
使用 --trace 标志运行以查看完整的回溯信息。 - DickieBoy
你有使用完整追踪(full trace)运行吗?这将会很有帮助。 - DickieBoy
2个回答

3
我也遇到了这个问题。我已经更新了所有东西,包括ruby、gem--system、所有的gems、compass等等,但它仍然会抛出错误。我不得不重复使用“gem uninstall listen”来删除安装的多个2.7.x版本——一旦它们全部被删除,只剩下listen 3.x,它才能再次正常工作。

2

这个问题似乎与celluloid gem有关。请查看Github Issue

我查看了compass源代码,似乎没有任何地方引用了celluloid - 我怀疑compass和此问题无关。如果你的项目中没有使用它,那么你的另一个gem可能在使用。你需要运行完整的跟踪来找出是哪一个gem在使用。


4
指南针使用 Sass,Sass 使用 Listen gem,Listen gem 使用 Celluloid。 - tomasbarrios
你正在使用哪个版本的Ruby?sass默认选择的listen版本取决于此 - 最新版本的listen不需要celluloid - Sculper
升级到Ruby 2.2是否可行?listen的自述文件强烈建议使用2.2版本。您可能还需要检查listen的版本-从3.x开始,celluloid不再是依赖项。 - Sculper
看起来你正在使用的 listen 版本是 2.7.11。也许尝试卸载该版本,并手动升级到 3.x? - Sculper
谢谢,我在Gemfile中错误地固定了版本,在删除它并使用ruby 2.2后一切正常! - tomasbarrios

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接