gulp.js – 将参数从gulp-watch传递给gulp-sass

我想知道是否有办法将参数从gulp-watch传递给gulp-sass。 为了定制gulp-sass任务。

我有两个任务,当我可以只有一个,如果我可以传递参数的基础上正在观看的gulp-watch任务的文件。 比方说,如果文件framework.scss正在改变,我可以简单地通过监视传递相关的src参数sass任务改变gulp.src(src)值。 因为这是两个任务的唯一区别。

基本上我正在努力使这个一蹴而就的任务变得dynamic。 然后,我可以简单地把if语句放到gulp-watch任务中,跟踪被改变的文件并根据if语句的结果将parameter passing给gulp-sass。

gulp.task('sass:framework', function() { gulp.src(app.src.scss + '/framework.scss') .pipe(sourcemaps.init()) .pipe(sass({ includePaths: require('node-bourbon').with(app.fwrk.scss, app.src.scss) }).on('error', sass.logError)) .pipe(rename({suffix: '.min'})) .pipe(sourcemaps.write()) .pipe(gulp.dest(app.dest.css)) }); gulp.task('sass:app', function() { gulp.src(app.src.scss + '/app.scss') .pipe(sourcemaps.init()) .pipe(sass({ includePaths: require('node-bourbon').with(app.fwrk.scss, app.src.scss) }).on('error', sass.logError)) .pipe(rename({suffix: '.min'})) .pipe(sourcemaps.write()) .pipe(gulp.dest(app.dest.css)) }); gulp.task('watch', function() { livereload.listen(35729, function(err) { if (err) { return console.log(err); } }); gulp.watch(app.src.scss + '/_settings.scss', ['sass:framework', 'sass:app']) gulp.watch([app.src.scss + '/app.scss', app.src.scss + '/app/*.scss'], ['sass:app']) gulp.watch(app.src.scss + '/framework.scss', ['sass:framework']) gulp.watch([basepath + '/**/**/**/*.php', app.dest.css + '/**/**/*.css', app.dest.js+ '/**/*.js']).on('change', livereload.changed); 

});

提前感谢您的帮助。