webentwicklung-frage-antwort-db.com.de

console.log für stdout bei gulp-Ereignissen

Ich möchte mich bei stdout (der Konfigurationsumgebung) anmelden, wenn eine gulp - Task ausgeführt wird oder ausgeführt wird.

Etwas wie das:

gulp.task('scripts', function () {
  var enviroment = argv.env || 'development';
  var config = gulp.src('config/' + enviroment + '.json')
      .pipe(ngConstant({name: 'app.config'}));
  var scripts = gulp.src('js/*');

  return es.merge(config, scripts)
    .pipe(concat('app.js'))
    .pipe(gulp.dest('app/dist'))
    .on('success', function() { 
      console.log('Configured environment: ' + environment);
    });
});

Ich bin nicht sicher, auf welches Ereignis ich reagieren sollte oder wo ich eine Liste davon finden kann. Irgendwelche Hinweise? Danke vielmals.

76
Rimian

(Im Dezember 2017 lieferte das Modul gulp-util die Protokollierung. wurde nicht mehr unterstützt. . Das Gulp-Team empfahl den Entwicklern, diese Funktionalität durch das Modul fancy-log zu ersetzen. Diese Antwort war aktualisiert, um dies widerzuspiegeln.)

fancy-log stellt die Protokollierung bereit und wurde ursprünglich vom Gulp-Team erstellt.

var log = require('fancy-log');
log('Hello world!');

Um die Protokollierung hinzuzufügen, Gulps API-Dokumentation teilen Sie uns mit, dass .src Folgendes zurückgibt:

Gibt einen Stream von Vinyl-Dateien zurück, die an Plugins weitergeleitet werden können.

Die Stream -Dokumentation von Node.js enthält eine Liste von Ereignissen. Hier ist ein Beispiel:

gulp.task('default', function() {
    return gulp.src('main.scss')
        .pipe(sass({ style: 'expanded' }))
        .on('end', function(){ log('Almost there...'); })
        .pipe(minifycss())
        .pipe(gulp.dest('.'))
        .on('end', function(){ log('Done!'); });
});

Hinweis: Das Ereignis end kann aufgerufen werden, bevor das Plugin abgeschlossen ist (und alle seine eigenen Ausgaben gesendet hat), da das Ereignis aufgerufen wird, wenn "alle Daten in das zugrunde liegende System übertragen wurden".

157
Jacob Budin

Um auf die Antwort von Jacob Budin aufzubauen, habe ich dies kürzlich ausprobiert und fand es nützlich.

var gulp = require("gulp");
var util = require("gulp-util");
var changed = require("gulp-changed");

gulp.task("copyIfChanged", function() {
    var nSrc=0, nDes=0, dest="build/js";
    gulp.src("app/**/*.js")
    .on("data", function() { nSrc+=1;})
    .pipe(changed(dest)) //filter out src files not newer than dest
    .pipe(gulp.dest(dest))
    .on("data", function() { nDes+=1;})
    .on("finish", function() {
        util.log("Results for app/**/*.js");
        util.log("# src files: ", nSrc);
        util.log("# dest files:", nDes);
    });
}
13
Trevedhek

Leider wird gulp.util abgeschrieben . Verwenden Sie stattdessen fancy-log: https://www.npmjs.com/package/fancy-log .

0
bsesic