更新到Yosemite后,grunt-contrib-compass中出现此错误的原因是什么?

时间:2014-10-17 11:08:15

标签: gruntjs yeoman osx-yosemite grunt-contrib-sass

我正在使用Yeoman。升级到Yosemite后,任务grunt servergrunt build会抛出此错误:

/Users/rogerfuentes/Documents/Web/Kelios/test/node_modules/grunt-contrib-compass/node_modules/tmp/lib/tmp.js:261
throw err;
        ^
Error: spawn ENOENT
    at errnoException (child_process.js:1001:11)
    at Process.ChildProcess._handle.onexit (child_process.js:792:34)

导致此错误的原因是什么,以及如何修复?

1 个答案:

答案 0 :(得分:28)

如果在终端窗口上运行指南针,您将看到以下错误:

  

-bash:/ usr / bin / compass:/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby:bad interpreter:没有这样的文件或目录

如果您转到/System/Library/Frameworks/Ruby.framework,您会看到安装已将Ruby版本更新为2.0。这就是为什么运行指南针失败,因为没有红宝石1.8了。

解决方案是通过运行:

在Yosemite上重新安装指南针
xcode-select --install
sudo gem update --system
sudo gem install compass