Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript console.log到gulp事件的标准输出_Javascript_Node.js_Gulp - Fatal编程技术网

Javascript console.log到gulp事件的标准输出

Javascript console.log到gulp事件的标准输出,javascript,node.js,gulp,Javascript,Node.js,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(

我想在任务正在运行或已经运行时登录到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);
    });
});
我不确定我应该回应什么事件,也不确定在哪里可以找到这些事件的列表。有什么建议吗?非常感谢。

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

提供日志记录,最初由Gulp团队构建

var log=require('fancy-log');
日志(“你好,世界!”);
要添加日志记录,请告诉我们
.src
返回:

返回可以通过管道传输到插件的乙烯基文件流

js的文档提供了事件列表。综上所述,这里有一个例子:

gulp.task('default',function()){
返回gulp.src('main.scss')
.pipe(sass({style:'expanded'}))
.on('end',function(){log('smessthere…');})
.pipe(minifycss())
.pipe(吞咽目标('.'))
.on('end',function(){log('Done!');});
});
注意:
end
事件可能在插件完成之前调用(并且已经发送了它自己的所有输出),因为该事件是在“所有数据都已刷新到基础系统”时调用的。(请注意,2017年12月,
gulp util
模块被弃用。)

我最近尝试了这个方法,发现它很有用

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')
。该方法的其余部分应该仍然有效。免责声明:我尚未对此进行测试。

遗憾的是
gulp.util
被弃用。 改用
fancy log

.on('end',()=>gutil.log('ES6 arrow syntax for simply…)

.on('end',()=>gutil.log('ES6 arrow syntax for simply…)
知道为什么需要工具吗?为什么
console.log
不起作用?@AlexMcMillan
.on('end',function(){console.log('most there…);})
对我有效。@AlexMcMillan它只是以与日志其余部分相同的样式漂亮地打印输出,所以你可以得到计时器。从今天(2017年12月)起,
gulp util
已被弃用:
.on(“end”)
.on(“finish”)
的区别是什么?据我所知,
可写。on(“finish”)
将在
可读时启动。on(“end”)可能不会启动。在这种情况下,确切的事件可能并不重要——我更专注于记录有用的统计数据。“
'finish'
'end'
事件分别来自
流。writeable
stream.Readable
类。”@FrankNocke
gulp util
已被弃用,请改用
花式日志