【问题标题】:Get filename from a gulp watch into a gulp task从 gulp watch 获取文件名到 gulp 任务中
【发布时间】:2017-03-21 01:38:08
【问题描述】:

我使用 gulp。

Gulp 手表

gulp.task('default',function() {
    gulp.watch([
        'assets/scss/**/*.scss',
    ], ['css']);
});

Gulp CSS 任务

此任务正在使用包含其他 scss 文件的 style.scss。当它被保存时,它被命名为style.css

gulp.task('css', function() {
    gulp.src(['assets/scss/style.scss'])
        .pipe(sass())
        .pipe(gulp.dest('site/plugins/theme/assets/css'))
    ;
});

就我而言,我希望它是这样的:

gulp.task('css', function() {
    gulp.src(['assets/scss/' + filename])
        .pipe(sass())
        .pipe(gulp.dest('site/plugins/theme/assets/css'))
    ;
});

在手表中是这样的:

gulp.task('default',function() {
    gulp.watch([
        'assets/scss/**/*.scss',
    ], ['css', 'my-filename']);
});

从 gulp watch 发送一个文件名以在 gulp src 中使用。可能吗?怎么样?

【问题讨论】:

  • 不,这是不可能的。您不能将参数传递给 gulp 任务。您必须重构代码并将其放入自己的函数中。

标签: css sass gulp


【解决方案1】:

我认为你不能通过调用单独的任务来做到这一点,但你可以通过观察者中的匿名函数来做到这一点

gulp.task('default', function() {
 gulp.watch(['assets/scss/**/*.scss'], function (obj) {

  return gulp.src(obj.path, {"base": "assets/scss/"})
   .pipe(sass())
   .pipe(gulp.dest('site/plugins/theme/assets/css'));

 });
});

【讨论】:

    猜你喜欢
    • 2015-03-11
    • 2015-07-14
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    相关资源
    最近更新 更多