-->

What causes this error in grunt-contrib-compass af

2019-02-09 10:47发布

问题:

I am using Yeoman. After upgrading to Yosemite, the tasks grunt server and grunt build throw this error:

/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)

What is causing this error, and how can it be fixed?

回答1:

If you run compass on the terminal window, you will see the following error:

-bash: /usr/bin/compass: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory

If you go to the /System/Library/Frameworks/Ruby.framework, you will see the installation has updated Ruby version to 2.0. That's why running the compass fails, because there is no ruby 1.8 anymore.

The solution is to re-install compass on Yosemite by running:

xcode-select --install
sudo gem update --system
sudo gem install compass