与Gulp,Bundler,Ruby和Susy打交道

时间:2017-04-25 08:48:20

标签: sass gulp bundler susy

根据this,可以使用Gulp从Ruby编译susy安装。 但是由于性能和弃用,是否可以使用gulp-sass而不是gulp-compass或gulp-ruby-sass? 实际上我在gulpfile.js中使用它:

gulpfile

var gulp = require('gulp');

// Include plugins
var plugins = require('gulp-load-plugins')();

// Variables de chemins
var source = './sass/**/*.scss'; // dossier de travail
var destination = './css/'; // dossier à livrer   

gulp.task('sasscompil', function () {
  return gulp.src(source)
  .pipe(plugins.sass({
      outputStyle: 'compressed',
      includePaths: ['/home/webmaster/vendor/bundle/gems/susy-2.2.2/sass']
  }).on('error', sasscompil.logError))
  .pipe(plugins.csscomb())
  .pipe(plugins.cssbeautify({indent: '  '}))
  .pipe(plugins.autoprefixer())
  .pipe(gulp.dest(destination + ''));
});

但是错误日志不起作用,因为sasscompil没有定义。 然后我需要给所有前指南针包括像susy,sassy-button等的路径。 是否有可能为宝石提供全球化的道路? 另外,尽管使用了gulp-load-plugins,我还能安装gulp插件吗?因为如果我不这样做,gulp就找不到插件。

由于

1 个答案:

答案 0 :(得分:1)

您需要将sasscompil.logError更改为plugins.sass.logError

这样

<强> gulpfile.js

gulp.task('sasscompil', function () {
  return gulp.src(source)
  .pipe(plugins.sass({
      outputStyle: 'compressed',
      includePaths: ['/home/webmaster/vendor/bundle/gems/susy-2.2.2/sass']
  }).on('error', plugins.sass.logError))
...
});

gulp-sass doc:

  

传递选项就像你对node-sass一样;它们将被传递,就像你使用node-sass一样。除了gulp-sass内部使用的数据选项。使用文件选项也不受支持,导致未定义的行为可能会更改,恕不另行通知。

示例

gulp.task('sass', function () {
 return gulp.src('./sass/**/*.scss')
   .pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
   .pipe(gulp.dest('./css'));
});