Pregunta

No puedo tragar saliva para no procesar todo, siempre.He intentado:

  1. actualizando mi versión de gulp
  2. usando trago cambiado
  3. usando gulp-newer

Funciona con gulp-ngmin, pero no con gulp-less.

Entonces esto procesa test.js solo si 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));
});

Pero cada vez que ejecuto esta tarea, calcula menos

¿Que esta mal aquí?

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));
});
¿Fue útil?

Solución

En realidad, la declaración de Nikita es falsa, funciona y es su propósito, solo asegúrese de que lo esté configurando correctamente.En mi caso tengo esto:

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

Mi gulp.src apunta a la carpeta donde tengo mis principales archivos (archivos que importan otros archivos menos) y quiero que todos se compilen en la carpeta de destino.

En .pipe(changed()), debe tener el mismo objetivo que tiene en .pipe(gulp.dest()).

Puede especificar la extensión a comparar para hacerlo más rápido ({extension: '.css'}) en pipe(changed()).

Tal vez necesite revisar doble su generador de generación.En mi caso, simplemente colocé allí la carpeta raíz de todos mis archivos menos.Algunos de mis archivos menos están en paths: [path.join(__dirname, 'less', 'includes')] y otros en src/less/globals.Los archivos que quiero compilar están en src/less/common.Así que usé src/less/pages en src/less/pages/*.LESS y gulp.src() en menos src/less/.

Otros consejos

Puedes usar trago-menos-cambiado paquete, verificará la menor jerarquía de compilación de archivos, considerando el @importesta 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));
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top