Não pode ficar gole-menos para executar somente se o arquivo foi alterado
Pergunta
Eu não consigo engolir-menos para não processar tudo, sempre.Eu tentei:
- atualizar a minha versão do gole
- usando gole-alterada
- usando gole-mais recentes
Ele funciona com um gole-ngmin, mas não com o gulp-menos
Portanto, esta processos test.js só se eu mudar 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));
});
Mas toda vez que eu executar esta tarefa, ele calcula a menos
O que está errado aqui?
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));
});
Solução
Na verdade, Nikita declaração é falsa, ela não funciona, e isso é de propósito, apenas certifique-se de que você está configurando-o corretamente.No meu caso eu tenho este:
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') );
});
Meu gulp.src
aponta para a pasta onde eu tenho o meu principal a MENOS de arquivos (ficheiros que importar outros arquivos) e eu quero que eles todos compilados para a pasta de destino.
No .pipe(changed())
você deve ter o mesmo destino que você tem em .pipe(gulp.dest())
.
Você pode especificar a extensão a ser comparado a torná-lo mais rápido ({extension: '.css'}
) em pipe(changed())
.
Talvez você precisa checar sua paths: [path.join(__dirname, 'less', 'includes')]
.No meu caso, eu apenas ali colocado a pasta raiz de todos os meus menos arquivos.Alguns dos meus MENOR arquivos estão em src/less/globals
e outros src/less/common
.Os arquivos que eu precisava para compilar estão em src/less/pages
.Então eu usei src/less/pages/*.LESS
no gulp.src()
e src/less/
em menos pipe(less({paths: []}))
.
Outras dicas
Você pode usar trago-menos-alterada o pacote, ele irá verificar a menos compilação de arquivo hierarquia, considerando o @import
usado
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));
});