2017-06-28 2 views
1

Unten ist mein Code Mein Hauptproblem Ich muss Änderungen von js und css und auch darauf basierend, erstellen min-Datei mit der richtigen Version auch meine Ausgabe Verzeichnis ist das gleiche, das ist auch ein Fall .gulp-rev funktioniert nicht mit gulp-watch

'use strict'; 

var gulp = require('gulp'); 
var rename = require('gulp-rename'); 
var uglify = require('gulp-uglify'); 
var watch = require('gulp-watch'); 
let cleanCSS = require('gulp-clean-css'); 
var rev = require('gulp-rev'); 
var jsArr = [ 
    'search/media/src/js/*.js', 
    //'common/media/js/*.js', 
    '!search/media/src/js/*.testmin.js', 
    '!search/media/src/js/*.min.js' 
      // '!common/media/js/*.testmin.js', 
]; 

var cssArr = [ 
    'search/media/css/*.css', 
    '!search/media/css/*.testmin.css', 
    '!search/media/css/*.min.css' 
]; 


gulp.task('js', function() { 
    //return gulp.src(jsArr, {base: './'}) 
    return gulp.src(jsArr) 
      .pipe(watch(jsArr)) 
      .pipe(uglify()) 
      .pipe(rename({suffix: '.testmin'})) 
      .pipe(rev()) 
      .pipe(gulp.dest(function (file) { 
       return file.base; 
      })) 
      .pipe(rev.manifest({ 
       merge: true 
      })) 
      .pipe(gulp.dest('./')); 
}); 

gulp.task('css', function() { 
    //return gulp.src(cssArr, {base: './'}) 
    return gulp.src(cssArr) 
      .pipe(watch(cssArr)) 
      .pipe(cleanCSS()) 
      .pipe(rename({suffix: '.testmin'})) 
      .pipe(rev()) 
      .pipe(gulp.dest(function (file) { 
       return file.base; 
      })) 
      .pipe(rev.manifest({ 
       merge: true 
      })) 
      .pipe(gulp.dest('./')); 
}); 

gulp.task('default', ['js', 'css'], function() { 
}); 

var watcher = gulp.watch([jsArr, cssArr], ['default']); 
watcher.on('change', function (event) { 
    console.log('File ' + event.path + ' was ' + event.type + ', running tasks...'); 
}); 

Danke für die Hilfe.

Antwort

1

Ich habe ein wenig getestet und war in der Lage zu bekommen Schluckuhr arbeiten durch Einwickeln watcher.on('change) `innerhalb einer Schluckaufgabe. Es müsste innerhalb einer Schluckaufgabe sein, um es zu nennen.

gulp.task('watch', function() { 

    var watcher = gulp.watch([jsArr, cssArr], ['default']); 

    watcher.on('change', function (event) { 
     console.log('File ' + event.path + ' was ' + event.type + ', running tasks...'); 
    }); 

}); 

Sie könnten es auch so einrichten, wenn Sie möchten. Dies wird die js und css Aufgaben getrennt voneinander beobachten.

gulp.task('watch', function() { 
    gulp.watch(jsArr, ['js']); 
    gulp.watch(cssArr, ['css']); 
}); 

Auch sollten Sie pipe(watch(jsArr)) und pipe(watch(cssArr)) entfernen. Ich bin mir nicht wirklich sicher, ob gulp-watch auf diese Weise verwendet werden kann, da ich es nie auf diese Weise verwendet habe, aber wenn gulp watch ausgeführt wird, würde dies dazu führen, dass die Aufgabe hängen bleibt und nicht abgeschlossen wird.

Um die Schluckuhr zu starten, führen Sie gulp watch in Ihrem Terminal aus.

Verwandte Themen