【问题标题】:"Error: spawn /usr/bin/compass ENOENT" when using gulp-compass“错误:使用 gulp-compass 时产生 /usr/bin/compass ENOENT”
【发布时间】:2026-01-28 11:50:01
【问题描述】:

我正在尝试在 OS X Yosemite 10.5.5 上使用插件 gulp-compass 运行以下 Gulp 任务来编译 Sass 文件。

var path = require("path");
var gulp = require("gulp");
var compass = require("gulp-compass");

gulp.task("compile2013Base", function() {
    var projectPath = path.join(__dirname, '../../ ');

    gulp.src(['../sass/desktop/css/2013/*.scss']).pipe(compass({
        project: projectPath,
        css: 'htdocs/assets/css/2013/',
        sass: 'sass/desktop/css/2013'
    })).on('error', errorHandler).pipe(gulp.dest('../../htdocs/assets/css/2013/'));
});

function errorHandler (error) {
  console.log(error.toString());
  this.emit('end');
 }

但是,当我尝试运行gulp compile2013Base 之类的任务时,我收到以下错误:

> gulp compile2013Base
[13:39:06] Using gulpfile [**redacted**]/scripts/js/gulpfile.js
[13:39:06] Starting 'compile2013Base'...
[13:39:06] Finished 'compile2013Base' after 9.07 ms
events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: spawn /usr/bin/compass ENOENT
    at exports._errnoException (util.js:746:11)
    at Process.ChildProcess._handle.onexit (child_process.js:1053:32)
    at child_process.js:1144:20
    at process._tickCallback (node.js:355:11)

我已经在 /usr/bin/compass 安装了 compass,并且在终端中运行 compass 不会显示任何错误。 我不确定这里该怎么做,如何获取错误详细信息?

【问题讨论】:

    标签: node.js gulp gulp-compass


    【解决方案1】:

    这对我有帮助

    sudo gem install -n /usr/local/bin compass

    Error: "compass:dist" Fatal error: spawn /usr/bin/compass ENOENT

    【讨论】:

    • 这为我解决了问题。我一遍又一遍地收到这个错误: throw er; // 未处理的“错误”事件 ^ 错误:在导出处生成 /usr/local/bin/compass ENOENT._errnoException (util.js:1022:11)