1

我有问题,当我运行 gulp watch -> 运行任务样式:构建时,我所有的 less 文件都被重新编译。我如何只编译更改的文件?

gulp.task('styles:build', function () {
    return gulp.src(pathes.src.styles)
        .pipe(changed(pathes.build.styles), {extension: '.css'})
        .pipe(print(function(filepath) {
            return "➔ file was changed: " + filepath;
        }))
        .pipe(plumber())
        .pipe(less({
            plugins: [autoprefix, cleanCSSPlugin],
            paths: ['./', 'web/styles']
        }))
        .pipe(gulp.dest(pathes.build.styles))
});


gulp.task('watch', function() {
   gulp.watch(pathes.src.styles, ['styles:build'])
});

在此处输入图像描述

4

2 回答 2

1

您需要修改以下行以添加右括号:

.pipe(changed(pathes.build.styles, {extension: '.css'}))

此外,正如我在第一次运行任务时所警告的那样,它可能会通过所有文件。

于 2017-08-09T20:49:09.590 回答
0

我想我找到了解决方案,只需安装 lessChanged = require('gulp-less-changed') 并在 less 管道之前包含他

.pipe(lessChanged())
.pipe(less())
于 2017-08-10T08:45:48.813 回答