Gulp-less lässt sich nicht nur dann ausführen, wenn sich die Datei geändert hat
Frage
Ich kann nicht schlucklos werden, um nicht jedes Mal alles zu verarbeiten.Ich habe es versucht:
- Aktualisierung meiner Gulp-Version
- mit gulp-changed
- mit gulp-newer
Es funktioniert mit gulp-ngmin, aber nicht mit gulp-less
Dies verarbeitet test.js also nur, wenn ich test.js ändere:
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));
});
Aber jedes Mal, wenn ich diese Aufgabe ausführe, wird weniger berechnet
Was ist hier falsch?
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));
});
Lösung
Eigentlich ist Nikitas Aussage falsch, sie funktioniert und ist ihr Zweck. Stellen Sie nur sicher, dass Sie sie richtig einrichten.In meinem Fall habe ich Folgendes:
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') );
});
Mein gulp.src
zeigt auf den Ordner, in dem ich meine LESS-Hauptdateien habe (Dateien, die andere LESS-Dateien importieren) und ich möchte, dass sie alle im Zielordner kompiliert werden.
In .pipe(changed())
Sie müssen das gleiche Ziel haben wie in .pipe(gulp.dest())
.
Sie können die zu vergleichende Erweiterung angeben, um den Vorgang zu beschleunigen ({extension: '.css'}
) In pipe(changed())
.
Möglicherweise müssen Sie Ihre Angaben noch einmal überprüfen paths: [path.join(__dirname, 'less', 'includes')]
.In meinem Fall habe ich dort einfach den Stammordner aller meiner weniger Dateien abgelegt.Einige meiner LESS-Dateien sind in src/less/globals
und andere in src/less/common
.Die Dateien, die ich kompilieren möchte, sind in src/less/pages
.Also habe ich verwendet src/less/pages/*.LESS
In gulp.src()
Und src/less/
in weniger pipe(less({paths: []}))
.
Andere Tipps
Sie können