Question

Je ne peux pas me passer d'une gorgée pour ne pas tout traiter, à chaque fois.J'ai essayé:

  1. mettre à jour ma version de gulp
  2. en utilisant gulp-changé
  3. en utilisant gulp-newer

Cela fonctionne avec gulp-ngmin, mais pas avec gulp-less

Cela traite donc test.js uniquement si je modifie 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));
});

Mais chaque fois que j'exécute cette tâche, elle calcule moins

Qu'est-ce qui ne va pas ici ?

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));
});
Était-ce utile?

La solution

En fait, la déclaration de Nikita est fausse, cela fonctionne et c'est son but, assurez-vous simplement de la configurer correctement.Dans mon cas j'ai ceci :

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

Mon gulp.src pointe vers le dossier où se trouvent mes principaux fichiers LESS (fichiers qui importent d’autres fichiers LESS) et je veux qu’ils soient tous compilés dans le dossier de destination.

Dans .pipe(changed()) vous devez avoir le même objectif que dans .pipe(gulp.dest()).

Vous pouvez spécifier l'extension à comparer pour la rendre plus rapide ({extension: '.css'}) dans pipe(changed()).

Peut-être avez-vous besoin de vérifier votre paths: [path.join(__dirname, 'less', 'includes')].Dans mon cas, je viens d'y placer le dossier racine de tous mes fichiers less.Certains de mes fichiers LESS sont dans src/less/globals et d'autres dans src/less/common.Les fichiers que je veux compiler se trouvent src/less/pages.J'ai donc utilisé src/less/pages/*.LESS dans gulp.src() et src/less/ en moins pipe(less({paths: []})).

Autres conseils

Vous pouvez utiliser Package MOOD-CLANT-MOINS-Changé, il vérifiera la hiérarchie de la compilation de fichiers, en considérant lescodes généreux utilisé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));
});

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top