2016-03-31 1 views
1

Il y a un bug dans le flux de gulp suivant, mais je ne pouvais pas trouver où.flux gulp ne génère pas de fichiers dest

var processors = [autoprefixer({ browsers: ['last 2 version']}), 
        cssnano(),]; 

var myjob = gulp.src(['app/css/normalize.css', 
         'app/css/org.scss']) 
     .pipe(watch('app/css/org.scss', {verbose: true})) 
     .pipe(gulpif('*.scss', sass())) 
     .pipe(concat('org.css')) 
     .pipe(postcss(processors)) 
     .pipe(flatten()) 
     .pipe(gulp.dest('dist')); 

Problème: Le dist/org.css n'est pas régénéré

il doit y avoir quelque chose que je suis absent ici.

Répondre

1

Le problème est que gulp-concat ne pas pousser le fichier concaténé org.css sauf s'il reçoit un événement end en amont. Puisque gulp-watch n'émet jamais l'événement end, gulp-concat se bloque indéfiniment.

La solution est de remplacer simplement gulp-concat avec gulp-continuous-concat:

var continuousConcat = require('gulp-continuous-concat'); 

var processors = [autoprefixer({ browsers: ['last 2 version']}), 
        cssnano(),]; 

gulp.task('default', function() { 
    return gulp.src(['app/css/normalize.css', 
        'app/css/org.scss']) 
    .pipe(watch('app/css/org.scss', {verbose: true})) 
    .pipe(gulpif('*.scss', sass())) 
    .pipe(continuousConcat('org.css')) 
    .pipe(postcss(processors)) 
    .pipe(flatten()) 
    .pipe(gulp.dest('dist')); 
}); 
+0

Merci !!! Sauvé ma journée !! – gongzhitaao

1

Comme meilleure pratique, utilisez la racine glob "./" pour préfixer vos chemins. c'est-à-dire "./app/css/normalize.css" et ainsi de suite. Essayez d'utiliser gulp-debug pour voir combien de fichiers se trouvent dans le tube, le cas échéant. Vous pouvez ajouter un tuyau de débogage entre chaque étape pour voir ce qui se passe.

+0

Merci pour la pointe de glob. Je vais réparer ça. Et j'ai utilisé 'gulp-debug', il sort le nom du fichier mais aucun fichier généré. La réponse de @Sven Schcenung résout mon problème. – gongzhitaao