【问题标题】:Gulp.js with foundation / compass带有基础/指南针的 Gulp.js
【发布时间】:2014-02-13 03:34:40
【问题描述】:

有没有人成功让 Gulp-sass 与 Foundation 4/5 合作(最好使用指南针?)

应用程序正在成功使用foundation 4,没有gulp,使用compass watch。但我想开始使用 gulp 来简化我的 sass/coffee/minification 编译。

这是我的 gulpfile.js

var gulp   = require('gulp'),
    util   = require('gulp-util'),
    sass   = require('gulp-sass'),
    coffee = require('gulp-coffee');

var paths = {
    scripts: {
        src:  'src/coffee/**/*.coffee',
        dest: 'public/javascripts'
    },
    styles: {
        src:  'src/sass/*.sass',
        dest: 'public/stylesheets'
    }
};

gulp.task('scripts', function() {
    return gulp.src(paths.scripts.src)
        .pipe(coffee())
        .pipe(gulp.dest(paths.scripts.dest));
});

gulp.task('sass', function () {
   return gulp.src(paths.styles.src)
        .pipe(sass({errLogToConsole: true}))
        .pipe(gulp.dest(paths.styles.dest));
});

gulp.task('watch', function () {
  gulp.watch(paths.scripts.src, ['scripts']);
  gulp.watch(paths.styles.src, ['sass']);
});

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

这对于咖啡脚本编译非常有效,但在 sass/compass 的注释行中失败了。

[gulp] Using file path/gulpfile.js
[gulp] Working directory changed to path
[gulp] Running 'scripts'...
[gulp] Running 'sass'...
[gulp] Running 'watch'...
[gulp] Finished 'watch' in 15 ms
[gulp] [gulp-sass] source string:1: error: @import directive requires a url or quoted path
// Here is what's throwing me for a loop. I'm assuming that it has something to do with
// gulp-sass not utilizing the ruby gem's source files for zurb-foundation/compass
[gulp] Finished 'sass' in 115 ms
[gulp] Finished 'scripts' in 122 ms
[gulp] Running 'default'...
[gulp] Finished 'default' in 11 μs

有没有办法解决这个问题,或者我最好的选择是从 4 升级到 5 并将基础文件添加到我的 src/coffee 中,这样就不必依赖查看我的 .rvm/../gems 文件夹?

【问题讨论】:

    标签: javascript node.js zurb-foundation compass-sass gulp


    【解决方案1】:

    尝试gulp-compass 而不是 gulp-sass。

    编辑

    首先让我为我糟糕的回答道歉。

    我自己测试了 gulp-compass 并且成功了。我不确定您的 Foundation 设置,但我选择的是 Using Foundation With Compass on Getting Started on SASS

    我的 gulpfile.js 的相关部分是:

    var compass = require('gulp-compass');
    
    var paths = {
      styles: {
        src:  'scss/*.scss',
        dest: 'stylesheets'
      }
    };
    
    gulp.task('sass', function () {
      return gulp.src(paths.styles.src)
        .pipe(compass({
          config_file: './config.rb',
          css: 'stylesheets',
          sass: 'scss'
        }))
        .pipe(gulp.dest(paths.styles.dest));
    });
    

    上面的示例与您的目录结构不同。因此,您的 gulpfile.js 将是:

    var compass = require('gulp-compass');
    
    var paths = {
      styles: {
        src:  'src/sass/*.sass',
        dest: 'public/stylesheets'
      }
    };
    
    gulp.task('sass', function () {
      return gulp.src(paths.styles.src)
        .pipe(compass({
          config_file: './config.rb',
          css: 'stylesheets',
          sass: 'sass'
        }))
        .pipe(gulp.dest(paths.styles.dest));
    });
    

    对于“compass()”的选项,“css”应该是“config.rb”中的“css_dir”,“sass”应该是“sass_dir”的“sass”,如the README of gulp-compass 中所述。

    希望它对你有用。

    【讨论】:

    • 哈哈哈,成功了!尽管它的编译速度至少是普通指南针手表的两倍,但它确实有效。感谢您的回答,并感谢您改进第一部分。
    猜你喜欢
    • 1970-01-01
    • 2013-04-12
    • 2013-09-04
    • 2014-04-13
    • 2014-04-22
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多