样式表必须在 sass 目录错误 gulp-compass

stylesheets must be in the sass directory error with gulp-compass

我正在将一个 grunt 项目转换为 gulp,但在使用 gulp-compass 时遇到问题。

我们有 scss 个文件分布在源代码中,而不是全部在一个目录中。该结构对该项目很重要,无法更改。

我想我会尝试以与执行 grunt 项目相同的方式设置配置,但是 a) 我很困惑为什么它期望一个与实际无关的目录 gulp.src 路径,以及 b) 无论如何我都无法让它工作。

// Compass
gulp.task('compass:dev', function() {
    return gulp.src(appPath + '/**/*.scss')
        .pipe(compass({
            project: path.join(__dirname, rootPath),
            css: distPath + '/css',
            sass: appPath + '/'
        }))
        .pipe(gulp.dest(distPath + '/css'));
});

错误是:

[17:02:20] Starting 'compass:dev'...
[17:02:21] Individual stylesheets must be in the sass directory.


events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: Compass failed

经过大量尝试,我终于能够使用 add_import_path 选项来实现它:

// Compass
gulp.task('compass:dev', function() {
    return gulp.src(appPath + '/**/*.scss')
        .pipe(plugins.compass({
            css: distPath + '/css',
            sass: path.join(__dirname, appPath) + '/',
            add_import_path: path.join(__dirname, appPath) + '/'
        }))
        .pipe(gulp.dest(distPath + '/css'));
});