将console.log记录到gulp事件的stdout

jpfvwuh4  于 2022-12-08  发布在  Gulp
关注(0)|答案(3)|浏览(155)

我想在gulp任务正在运行或已经运行时登录到stdout(配置环境)。
大概是这样的:

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

我不知道我应该回应什么事件,也不知道在哪里可以找到这些的列表。有什么建议吗?非常感谢。

00jrzges

00jrzges1#

  • (2017年12月,提供日志记录的gulp-util模块was deprecated。Gulp团队建议开发者将此功能替换为fancy-log模块。此答案已更新以反映这一点。)*

fancy-log提供日志记录,最初由Gulp团队构建。

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

为了添加日志记录,Gulp's API documentation告诉我们.src返回:
返回可以通过管道传送到插件的乙烯基文件流。
js的Stream文档提供了一个事件列表。

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

注意:end事件可能会在插件完成(并已发送其自身的所有输出)之前调用,因为该事件是在“所有数据都已刷新到底层系统”时调用的。

nxowjjhe

nxowjjhe2#

  • (请注意-2017年12月,gulp-util模块已弃用。)*

为了在Jacob Budin给出的答案的基础上进一步发展,我最近尝试了这个方法,发现它很有用。

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

**更新(2021年4月):**关于弃用模块问题。尝试将require('gulp-util')中的util.log替换为require('fancy-log')中的log。其余方法应该仍然有效。免责声明:我还没测试过这个。

ulydmbyx

ulydmbyx3#

遗憾的是,gulp.util已被弃用。请改用fancy-loghttps://www.npmjs.com/package/fancy-log

相关问题