只有在文件已更改时才能无吞咽运行

  • 本文关键字:运行 文件 gulp gulp-less
  • 更新时间 :
  • 英文 :


我不能每次都不处理每件事。我试过:

  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));
});

实际上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())中相同的目标。

您可以在pipe(changed())中指定要比较的扩展以使其更快({extension: '.css'})。

也许你需要再次检查你的paths: [path.join(__dirname, 'less', 'includes')]。在我的例子中,我只是把所有less文件的根文件夹放在那里。我的一些LESS文件在src/less/globalssrc/less/common中。我要编译的文件在src/less/pages中。所以我在gulp.src()中使用src/less/pages/*.LESS,在pipe(less({paths: []}))中使用src/less/

您可以使用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));
});

相关内容

  • 没有找到相关文章

最新更新