只有在文件发生变化时才能运行gulp-less

Ash*_*man 3 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));
});
Run Code Online (Sandbox Code Playgroud)

但每次我执行此任务时,它都会计算得越少

这有什么不对?

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));
});
Run Code Online (Sandbox Code Playgroud)

Ant*_*dao 5

实际上尼基塔的陈述是错误的,它确实有效,这是它的目的,只要确保你正确设置它.就我而言,我有这个:

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') );
});
Run Code Online (Sandbox Code Playgroud)

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

.pipe(changed())你必须拥有与你相同的目标.pipe(gulp.dest()).

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

也许你需要仔细检查你的paths: [path.join(__dirname, 'less', 'includes')].就我而言,我只是放置了所有较少文件的根文件夹.我的一些LESS文件在src/less/globals和其他文件中src/less/common.我要编译的文件是src/less/pages.所以我用src/less/pages/*.LESSgulp.src()src/less/较少pipe(less({paths: []})).

  • 你提到'全局'和'普通'.如果进口发生变化,这会自动知道编译顶级页面吗?从文档判断它不...但是,以防万一你找到了办法? (3认同)