3

我每次都不能不处理所有事情。我试过了:

  1. 更新我的 gulp 版本
  2. 使用 gulp-changed
  3. 使用 gulp-newer

它适用于 gulp-ngmin,但不适用于 gulp-less

因此,仅当我更改 test.js 时才会处理 test.js:

var SRC = 'test.js';
var DEST = 'dist';

gulp.task('test', function () {
    return gulp.src(SRC)
        .pipe(changed(DEST))
        // ngmin will only get the files that
        // changed since the last time it was run
        .pipe(ngmin())
        .pipe(gulp.dest(DEST));
});

但是每次我运行这个任务时,它计算的越少

这里有什么问题?

var SRC = 'test.less';
var DEST = 'dist';

gulp.task('test', function () {
    return gulp.src(SRC)
        .pipe(changed(DEST))
        .pipe(less({
                paths: [path.join(__dirname, 'less', 'includes')]
            }))
        .pipe(gulp.dest(DEST));
});
4

2 回答 2

5

实际上 Nikita 的说法是错误的,它确实有效,这就是它的目的,只要确保你正确设置它。就我而言,我有这个:

var gulp         = require('gulp');
var less         = require('gulp-less');
var changed      = require('gulp-changed');

gulp.task('less', function () 
{  
    gulp.src('./src/less/pages/*.less')
        .pipe(changed( 'outputDir/css', {extension: '.css'}))
        .pipe(less({
            paths: [ './src/less/' ]
        }))
        .pipe(gulp.dest( 'outputDir/css') );
});

gulp.src指向我的主要 LESS 文件(导入其他 LESS 文件的文件)所在的文件夹,我希望它们全部编译到目标文件夹中。

.pipe(changed())中,您必须与在中具有相同的目标.pipe(gulp.dest())

您可以指定要比较的扩展名,使其{extension: '.css'}pipe(changed()).

也许您需要仔细检查您的paths: [path.join(__dirname, 'less', 'includes')]. 就我而言,我只是将所有较少文件的根文件夹放在那里。我的一些 LESS 文件src/less/globalssrc/less/common. 我要编译的文件在src/less/pages. 所以我用src/less/pages/*.LESS了 ingulp.src()src/less/in less pipe(less({paths: []}))

于 2014-07-18T11:50:56.013 回答
1

您可以使用gulp-less-changed包,它会检查 less 文件编译层次结构,考虑到@import使用的 s

var gulp = require('gulp');
var lessChanged = require('gulp-less-changed');
var rename = require('rename');
var less = require('gulp-less');

var outputPat = "dest";

gulp.task('less', () => {
    return gulp.src('src/*.less')
        .pipe(lessChanged({
            getOutputFileName: file => rename(file, { dirname: outputPath, extname: '.css' })
        }))
        .pipe(less())
        .pipe(gulp.dest(outputPath));
});
于 2017-11-08T09:58:35.027 回答