首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gulp错误与gulp compass:您必须从项目目录编译单独的样式表

Gulp错误与gulp compass:您必须从项目目录编译单独的样式表
EN

Stack Overflow用户
提问于 2014-05-23 18:14:54
回答 3查看 9.4K关注 0票数 7

我尝试运行gulp任务来编译我的sass项目,但是由于我创建了app/sass/子文件夹并将我的源文件放入其中,所以我遇到了一个问题。以前,当sass和css文件夹与我的gulpfile在同一个目录中时,它运行得很好。如果我在我的基本目录上运行一个指南针监视命令,我没有任何问题,这只是通过gulp-compass。

输出:

代码语言:javascript
复制
Devnco: /Users/Devnco/Web/maquette ->gulp sass
[gulp] Using gulpfile ~/Web/maquette/gulpfile.js
[gulp] Starting 'sass'...
[gulp] Finished 'sass' after 6.12 ms
[gulp] You must compile individual stylesheets from the project directory.
[gulp] Plumber found unhandled error: [gulp] Error in plugin 'gulp-compass': Compass failed
[gulp] You must compile individual stylesheets from the project directory.
[gulp] Plumber found unhandled error: [gulp] Error in plugin 'gulp-compass': Compass failed
[gulp] You must compile individual stylesheets from the project directory.
[gulp] Plumber found unhandled error: [gulp] Error in plugin 'gulp-compass': Compass failed

我的gulpfile.js:

代码语言:javascript
复制
var paths = {
    css: './app/assets/css',
    sass: './app/assets/sass/*.scss',
    js: './app/assets/js',
    images: './app/assets/images'
}

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

    gulp.src(paths.sass)
        .pipe(plumber())
        .pipe(compass({
            css: paths.css,
            sass: paths.sass
        }))
        .pipe(gulp.dest(paths.css))
        .pipe(minifyCss())
        .pipe(rename({ extname: '.min.css'}))
        .pipe(gulp.dest(paths.css));
});

我的工作目录:

代码语言:javascript
复制
gulpfile.js
app/
    assets/
        fonts/
        images/
        sass/
        css/
    pages/
        etc…

以及我使用的版本的package.json (最新版本)

代码语言:javascript
复制
"devDependencies": {
  "gulp": "^3.6.2",
  "gulp-compass": "^1.1.9",
  "gulp-concat": "^2.2.0",
  "gulp-minify-css": "^0.3.4",
  "gulp-plumber": "^0.6.2",
  "gulp-rename": "^1.2.0"
}

我进行了一些搜索,但仍然没有找到问题所在。

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-21 21:30:43

我用它来编译我的指南针文件,它工作得很好,它直接来自于gulp compass文档

如果您没有使用config.rb

代码语言:javascript
复制
var compass = require('gulp-compass'),
  path = require('path');

gulp.task('compass', function() {
  gulp.src('./src/*.scss')
  .pipe(compass({
    project: path.join(__dirname, 'assets'),
    css: 'css',
    sass: 'sass'
  }))
  .pipe(gulp.dest('app/assets/temp'));
});

如果您正在使用config.rb

var compass =require(‘gulp compass’);

代码语言:javascript
复制
gulp.task('compass', function() {
  gulp.src('./src/*.scss')
  .pipe(compass({
    config_file: './config.rb',
    css: 'stylesheets',
    sass: 'sass'
  }))
  .pipe(gulp.dest('app/assets/temp'));
});
票数 1
EN

Stack Overflow用户

发布于 2014-05-24 09:50:04

我今晚也遇到了这个问题。我通过更改我的config.rb路径修复了这个问题。试一试

代码语言:javascript
复制
.pipe(compass({
  config_file: './config.rb',
  css: paths.css,
  sass: paths.sass
}))

如果您没有/不想使用config.rb,我相信您必须像https://www.npmjs.org/package/gulp-compass的“不带config.rb的加载配置”部分那样设置项目根目录

票数 1
EN

Stack Overflow用户

发布于 2014-10-17 23:20:10

我也遇到了这个问题,我发现项目路径需要指向包含css、scss文件夹的文件夹。例如:

代码语言:javascript
复制
app /
  - src /
      - css /
      - sass /

根据上面的结构,您的配置应该如下所示:

代码语言:javascript
复制
project: "app/src",
css: "css",
sass: "sass"

当我的项目路径是上一级时,我得到了这个错误,使我的css属性看起来像:"src/css"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23826572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档