Non può ottenere Gulp-Meno da eseguire solo se il file è cambiato
Domanda
Non riesco a ottenere Gulp-meno per non elaborare tutto, ogni volta.Ho provato:
- .
- Aggiornamento della mia versione di Gulp
- usando GUGP-CAMBIAMENTO
- usando Gulp-newer
funziona con Gulp-NGMIN, ma non con Gulp-Less
Allora Test Test.js solo se cambio 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));
});
.
Ma ogni volta che eseguo questa attività, calcola il meno
Cosa c'è di sbagliato qui?
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));
});
.Soluzione
In realtà la dichiarazione di Nikita è falsa, funziona ed è lo scopo, assicurati di averlo configurato correttamente.Nel mio caso ho questo:
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') );
});
.
My gulp.src
punta alla cartella in cui ho i miei principali file meno (file che importano altri file meno) e li voglio compilando tutti nella cartella di destinazione.
In .pipe(changed())
Devi avere lo stesso obiettivo che hai in .pipe(gulp.dest())
.
È possibile specificare l'estensione da confrontare per renderlo più veloce ({extension: '.css'}
) in pipe(changed())
.
Forse è necessario ricontrollare il tuo paths: [path.join(__dirname, 'less', 'includes')]
.Nel mio caso, ho appena inserito la cartella principale di tutti i miei file meno.Alcuni dei miei meno file sono in src/less/globals
e altri in src/less/common
.I file che voglio compilare sono in src/less/pages
.Così ho usato src/less/pages/*.LESS
in gulp.src()
e src/less/
in meno pipe(less({paths: []}))
.
Altri suggerimenti
È possibile utilizzare il pacchetto Gulp-Less-Modificato-Modificato , controllerà la gerarchia di compilazione inferiore del file, considerando i @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));
});
.