【问题标题】:stylesheets must be in the sass directory error with gulp-compass样式表必须在 sass 目录中 使用 gulp-compass 出错
【发布时间】:2015-04-07 00:06:11
【问题描述】:

我正在将一个 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

【问题讨论】:

  • 你试过sass: appPath 不带斜杠吗?
  • 是的,我试过几种形式

标签: gulp compass gulp-compass


【解决方案1】:

在玩了很多之后,我终于能够使用 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'));
});

【讨论】:

  • 但是,第二天所有路径都正常工作,没有多余的东西。不知道这修复了什么或为什么最终会改变。
猜你喜欢
  • 2014-07-12
  • 2015-02-08
  • 1970-01-01
  • 2014-11-22
  • 1970-01-01
  • 2016-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多