无法找到或读取要导入的文件:compass - Gulp环境。

4
我已经建立了一个Gulp环境,旨在使用Compass编译和压缩SASS。
我创建了所需任务的gulpfile,所有包都已安装并运行良好,SASS编译和压缩都完全正常,直到我尝试添加以下内容:
@import "compass";

我在我的 mac 上安装了 Compass,并安装了 node_package,但当我运行 gulp 任务时,出现了以下错误:

error style.scss (Line 15: File to import not found or unreadable: compass

我就是无法弄清楚这里的问题所在。我在Stackoverflow上看到很多人都遇到了相同的问题,而我已经尝试了一切。

我尝试安装Compass的--pre版本,尝试卸载Compass和SASS,再重新安装它们,但没有任何效果。

这是我的package.json中的devDependencies:

"devDependencies": {
    "gulp": "^3.8.8",
    "gulp-compass": "^1.3.2",
    "gulp-concat": "^2.4.1",
    "gulp-minify-css": "^0.3.10",
    "gulp-ruby-sass": "^0.7.1",
    "gulp-uglify": "^1.0.1",
    "gulp-util": "^3.0.1"
  }

我的gulpfile.js中的样式gulp任务:

gulp.task('styles', function () {

    return gulp.src('../source/sass/style.scss')
        .pipe(sass({sourcemap: true, sourcemapPath: 'style.css'}))
        .on('error', function (err) { console.log(err.message); })
        .pipe(minifyCSS())
        .pipe(gulp.dest('../public/_/'));
});

最后,这是将所有内容整合起来的gulp任务:

gulp.task('default',['scripts', 'styles', 'watch']);

任何帮助都将不胜感激。就像我所说的,一切工作正常。当更改发生时,观察任务会运行并编译我的SASS和JavaScript。但是,当我尝试导入Compass时,它就会出错。
1个回答

7

您已经安装了gulp-compass,但是在您的任务中没有使用它,因此它不应该起作用。

由于您正在使用gulp-ruby-sass,我认为您应该使用其compass选项并将其设置为true,并删除未使用的gulp-compass模块。

您的任务看起来像这样:

gulp.task('styles', function () {
  return gulp.src('../source/sass/style.scss')
    .pipe(sass({ compass: true, sourcemap: true, sourcemapPath: 'style.css'}))
    .on('error', function (err) { console.log(err.message) })
    .pipe(minifyCSS())
    .pipe(gulp.dest('../public/_/'))
})

非常感谢,这个完美地解决了问题,真是一个愚蠢的错误!我会在能够时给你颁发奖励。 - Jamie Wade
很高兴能够帮忙 :) - Preview

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接