【发布时间】:2015-03-11 18:49:23
【问题描述】:
我目前正在使用 gulp 工作流程,该工作流程使用 createSassTask() 方法为同一项目中的几个不同 httpddocs 目录中的每一个生成任务。以下是我目前的gulpfile.js:
var package = require('./package.json'),
gulp = require('gulp'),
sass = require('gulp-sass'),
autoprefixer = require('gulp-autoprefixer'),
concat = require('gulp-concat'),
uglify = require('gulp-uglify'),
rename = require('gulp-rename'),
minifyCSS = require('gulp-minify-css'),
notify = require('gulp-notify');
function createSassTask(directory) {
var taskName = 'sass-'+directory;
gulp.task(taskName, function() {
return gulp.src('./'+directory+'/media/sass/**/*.scss')
.pipe(sass({errLogToConsole: true}))
.pipe(autoprefixer('last 4 version'))
.pipe(minifyCSS({keepBreaks:true}))
.pipe(rename({suffix: '.min' }))
.pipe(gulp.dest('./'+directory+'/media/css'))
.pipe(notify('SASS compiled for ' + directory));
});
gulp.watch('./'+directory+'/media/sass/**/*.scss', [taskName]);
}
gulp.task('default', function () {
createSassTask('httpdocs-site1');
createSassTask('httpdocs-site2');
createSassTask('httpdocs-site3');
});
我怎样才能最好地使用源地图来完成这样的任务?我尝试过使用gulp-sourcemaps,但我需要能够将init() 和write() 函数包装在sass、autoprefixer、minifyCSS 和rename 周围。我不认为 minifyCSS 或重命名支持 gulp-sourcemaps。还有其他/更好的方法吗?
【问题讨论】: