热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于gulp事件的console.log到stdout

如何解决《关于gulp事件的console.log到stdout》经验,为你挑选了2个好方法。

我想在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);
    });
});

我不确定我应该回应什么事件或在哪里找到这些列表.有什么指针吗?非常感谢.



1> Jacob Budin..:

(2017年12月,gulp-util提供日志记录的模块已弃用 .Gulp团队建议开发人员用fancy-log模块替换此功能.此答案已更新以反映这一点.)

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

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

要添加日志记录,Gulp的API文档告诉我们.src返回:

返回可以通过管道传输到插件的Vinyl文件流.

Node.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事件可以在插件完成之前调用(并且已经发送了所有自己的输出),因为在"所有数据都已刷新到底层系统"时调用该事件.


知道为什么需要一个工具吗?为什么`console.log`不起作用?
@AlexMcMillan` .on('end',function(){console.log('Almost there ...');})`对我有用.
截至今天(2017年12月),'gulp-util`已被弃用:https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5
`.on('end',()=> gutil.log('ES6箭头语法为简单起见...'))
@AlexMcMillan它将漂亮地以与其余日志相同的样式打印输出,以便您获取计时器。

2> Trevedhek..:

为了建立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);
    });
}


据我了解,`writable.on('finish')`会在`readable.on('end')`可能没有时触发.在这种情况下,确切的事件可能无关紧要 - 我更专注于记录有用的统计数据.
推荐阅读
  • 基于 Node.js 的轻量级云函数功能实现
    导语在万物皆可云的时代,你的应用甚至不需要服务器。云函数功能在各大云服务中均有提供,那么,如何用“无所不能”的node.js实现呢?一、什么是云函数?云函数是诞生于云服务的一个新名 ... [详细]
  •   electron-vue教程,Electron+Vue  这篇文章通过实例代码给大家介绍了某视频剪辑软件项目中添加电子的方法,代码简单易懂,对大家的学习或工作具有一定的参考借鉴 ... [详细]
  • web开发不用json(哪种语言没有做过web开发)
    web开发不用json(哪种语言没有做过web开发) ... [详细]
  • cnodejs桌面比较的简单介绍
    cnodejs桌面比较的简单介绍 ... [详细]
  • webpack编译模板文件
    1、项目结构 安装loader:npmihtml-loader--save-devnpmiejs-loader--save-dev  2、模板文件layer.tpl&amp ... [详细]
  • 用node.js实现mvc相册资源管理器
    摘要:通过前两天的学习我大概学了了,用formidable模块文件上传,express框架,以及利用fs模块进行文件读取,今天我学习了如何用这些知识来制作相册,暂没有数据库,所以做的也是本地的资源管理 ... [详细]
  • vue初始化——源码简读
    文章目录源码目录结构Vue的构建版本完整版与运行时版本的区别template与render执行顺序Vue函数的初始化Vue静态方法初始化Vue实例成员初始化过程Vue实例成员ini ... [详细]
  • [node.js] sftp上传文件
    前言前端工作中我们经常需要把静态文件上传到服务器,这次在公司大佬写的文件中,我发现了一个很有趣的东西,在项目打包的时候自动上传服务器,细看一下其实就是用js写了一个脚本用node. ... [详细]
  • <scriptsrc"http:res.wx.qq.comopenjsjweixin-1.0.0.js&qu ... [详细]
  • Colortip – jQuery文字信息提示插件简介
    http:www.zhangxinxu.comwordpress201010colortip-jquery%E6%96%87%E5%AD%97%E4%BF%A1%E6%81%AF% ... [详细]
  • jQuery_AJAX代码:$.ajax({url:,async:true, data:(JSON),successerror});参数options类型:Object可选。AJ ... [详细]
  • url转发php,url转发怎么收录
    url转发php,url转发怎么收录 ... [详细]
  • 商品的编辑 数据的编辑核心是:数据回显。 编辑按钮事件 1、判断选中的行数2、弹出window当窗口打开加载的时候回显数据。 3、加载编辑页面,在页面加 ... [详细]
  • gulp源码简介gulp源码中心部份寥寥60+行。然则经由过程这60+行代码,gulp给我们带来的确是前端自动化构建的方便。以往认为其源码一定蛮庞杂,却没想到倒是这么60+行,这6 ... [详细]
  • [译]Flutter 的编译模式
    [译]Flutter的编译模式原文使用过Flutter构建APP的人可能有个疑惑,Flutter的编译产物有时候是一个共享库,有时候是几个文件,比较难于理解,本文主要介绍Flutt ... [详细]
author-avatar
PHP菜鸟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有